2012-09-04 2 views
1

나는 상황이있어 이해가 안됩니다. 이 사건은 매우 간단합니다. 제 DB를 사용하기 위해 제네릭 저장소를 사용합니다. http://efgenericrepository.codeplex.com/ 모두 잘 작동하지만 지금은보기가 하나 뿐이므로 문제가 발생합니다. EF가 쿼리를 실행할 때 단어 데이터를 반환한다고 생각합니다.EF 가능 반환 검색어가있는 버그

이 SQL 관리자에서 내 SQL의 결과입니다

Select * 
from Vw_HoursMOPJustificated 
where IdUser = 20 
and ActionDate = '2012-08-22' and Hour < 24 

IdMopTime | IdJustification | IdJustificationType 

44  30     8 
44  40    11 
44  43    13 
45  31     8 
45  41    12 
46  32     8 

그리고 나는이 간단한 코드를 실행할 때이 C#을 안에 내 결과입니다.

MyIGFEntities entity = new MyIGFEntities(); 

var table = new Repository<MyIGF.Models.Vw_HoursMOPJustificated>(new MyIGFEntities()) 
    .Find(x => x.ActionDate == ActionDate && x.IdUser == IdUser && x.Hour < 24); 

IdMopTime | IdJustification | IdJustificationType 
44 | 30 | 8 
44 | 30 | 8 
44 | 30 | 8 
45 | 31 | 8 
45 | 31 | 8 
46 | 32 | 8 

아무도 도와 줄 수 있습니까?

+0

EF에서 생성되는 실제 쿼리는 무엇입니까? –

+0

나는 SQL 서버 프로파일 링 및 귀하의 linq 쿼리에 의해 실행되는 SQL을보고 싶습니다 –

답변

1

edmx를 수정해야합니다.

Vw_HoursMOPJustificated 엔티티에서 IdMopTime, IdJustification 및 IdJustificationType (적어도)에 대해 기본 키를 true로 설정하십시오.

모든 것이 올바른지 확인하려면 edmx에서 데이터를 가져 와서 정확한 데이터가 있는지 확인하십시오.

때로는 (그리고 주로 "실제"기본 키가없는 뷰에서) 기본 키 (또는 각 행을 구별하게하는 속성)가 잘못 검색되어 혼란을 야기 할 수 있습니다 결과.

관련 문제