코드를 사용하여 데이터베이스를 구성했습니다. 구체적인 유형으로 프로젝션을 사용하여 쿼리하는 것이 훨씬 빠른 방법인데, Include
문을 사용하는 것보다 빠릅니다. 그러나 나는 다음과 같은 문제로 실행하십시오 .Tasks = 부분이 실행될 때Linq를 사용하여 탐색 속성을 프로젝트에 투영하는 방법은 무엇입니까?
dim records=(From record in db.SomeDbSet
Where record.UserID=userID
Select New UserSpecificRecord With
{ .Name=record.User.Name
.Tasks=record.Tasks
}).ToList
나는에 따라 유효하지 않은 캐스트 예외에서, 엔티티 프레임 워크는 쿼리의이 종류를 지원하지 않는 메시지에 이르기까지, 다양한 오류가 발생할 수 컬렉션 유형 UserSpecificRecord 클래스의 Tasks 속성을 만듭니다. 나는에 코드를 변경하면
:
Dim records= (From record in db.SomeDbSet
Where record.UserID=userID
Select New With
{ .Name=record.User.Name
.Tasks=record.Tasks
}).ToList
dim userRecords=(From record in records
Select New UserSpecificRecord With
{ .Name=record.Name
.Tasks=record.Tasks
}).ToList
즉 : 나는 익명의 유형에 투영하고 구체적인 유형의 모든 작품을 구축 할 수 있습니다. 나는 콘크리트 형으로 직접 투영 할 수 있기를 매우 원합니다. 할 수 있습니까?
을 참조하십시오 'UserSpecifiedRecord'엔터티 편리 내가 작업하는 데 필요한 데이터를 집계 단지 클래스입니다. – Dabblernl
코드가 없으면 이렇게 말하기 어렵습니다. 귀하의 축소 형 모델 (관련 엔터티)을 게시 할 수있어서 실행할 수 있습니다 - 그리고 귀하의 '구체적인'클래스도. 그리고 나는 실제로 그것이 무언가 (당신이 에러의 범위를 언급 한 것처럼) 일 수 있고, EF가 관련 될 수 있다고 생각합니다. btw. 당신은 코드 첫 번째 또는 db- 첫 번째를 사용합니까 – NSGaga
충분히 생각해야합니다 : 레코드, 사용자 및 작업, 레코드에는 많은 작업이 있고 사용자는 많은 레코드가 있습니다. UserSpecificRecord는 DTO입니다. – Dabblernl