2013-05-20 2 views
0

EF 5.0 및 코드를 먼저 사용하고 있으며 수동 SQL 쿼리를 사용하여 엔티티 배열을 채울 필요가 있습니다. 그러나 db에서 전체 엔터티를로드 할 필요는 없지만 몇 개의 필드 만로드하면됩니다. 추적 할 필요도 없습니다. EF로 수동 SQL 쿼리를 사용하여 부분로드

The data reader is incompatible with the specified 'XXX_Type'. A member of the type, 'XXX_Some_Not_Loaded_Property', does not have a corresponding column in the data reader with the same name. 

이없는 필드를 무시 EF 강제로 어떤 방법이 있습니까 :

모두

Context.Set<TEntity>().SqlQuery(queryText, parameters) 

Context.Database.SqlQuery<TEntity>(queryText, parameters) 

예외를 던지고있다?

답변

0

당신이해야 할 기본 값을 사용할 수 있습니다 예를

표 1 위는 Col2의라는 정수 열을 가질 수 있습니다에서
Select Col1, 0 as Col2, getdate() as DateCreated from Table1 

에 대한 "로 선택"하지만 우리는 그것을 선택하지 않습니다. 대신 0을 Col2으로 선택하면 문제가 발생하지 않습니다.

마찬가지로 DateCreated라는 데이터베이스에 열이 있었을 수도 있지만 마찬가지로 현재 날짜를 DateCreated로 선택합니다.

EF를 트릭해야합니다. 추적을 사용하지 않도록 설정하는 방법을 여전히 검색하여 DB 행을 이러한 기본값으로 덮어 쓰지 않도록해야합니다.

+0

고마워, 트릭을했지만 여전히 더 우아한 해결책을 찾고있다. – nativehr