내가 EntityFramework 4.3.1을 사용하고 난 쿼리를 실행하면이엔티티 프레임 워크의 쿼리 결과
Context.Set<KullaniciYetkiView>().Where(y => y.KullaniciId == kullaniciId && y.YetkiKod == yetkiKod)
같은 쿼리를 실행하려고하고 예상대로 115 개 레코드를 반환하고 있습니다. 그러나 내가 그 기록을 볼 때 그들 모두는 동일합니다. 그래서 나는 프로파일 러로부터 무엇이 빠졌는지 살펴보기 위해 아래와 같은 쿼리와 그 관리 스튜디오로부터 돌아온 115 개의 다른 레코드를 보게된다.
exec sp_executesql N'SELECT
[Extent1].[YetkiKod] AS [YetkiKod],
[Extent1].[KullaniciId] AS [KullaniciId],
[Extent1].[LokasyonId] AS [LokasyonId],
[Extent1].[YetkiId] AS [YetkiId],
[Extent1].[HiyerarsikKod] AS [HiyerarsikKod],
[Extent1].[LokasyonSeviye] AS [LokasyonSeviye],
[Extent1].[Yetkili] AS [Yetkili],
[Extent1].[Engelli] AS [Engelli],
[Extent1].[LokasyonEngelli] AS [LokasyonEngelli]
FROM [dbo].[sayKullaniciYetkiView] AS [Extent1]
WHERE ([Extent1].[KullaniciId] = @p__linq__0) AND ([Extent1].[YetkiKod] = @p__linq__1)',N'@p__linq__0 uniqueidentifier,@p__linq__1 nvarchar(4000)',@p__linq__0='283CCB41-3BDF-4BEF-BD26-E46191CA069D',@p__linq__1=N'FIN.SATISFATURA.E'
나는 문제가 EF와 그것이 내가이
var yetkiler1 = Context.Set<KullaniciYetkiView>().Where(y => y.KullaniciId == kullaniciId && y.YetkiKod == yetkiKod).Distinct().ToList();
var yetkiler2 = Context.Set<KullaniciYetkiView>().Where(y => y.KullaniciId == kullaniciId && y.YetkiKod == yetkiKod).ToList().Distinct();
첫 번째 쿼리는 115 행과 두 번째 반환 1.
을 반환과 같은 코드를 실행 증명하는 생각나는 무엇이 누락 되었습니까?
미리 감사드립니다.
그 KullaniciId 열이 비린내가있는 것 같습니다. 생성 된 쿼리는이를 고유 ID로 취급하지만 115 개의 레코드를 반환합니다. –
모델 구성에 문제가있을 수 있습니다. http://stackoverflow.com/a/7955773/1099260을 확인하십시오. –
예, 115 개의 레코드를 반환해야합니다. –