나는 몇 시간 동안 Distinct가 내 코드에서 작동하도록 노력 해왔다.EF 4.x DBSet 컨텍스트 및 IEqualityComparer에서 작동하도록 Distinct 목록을 얻으려면 어떻게해야합니까?
EF 4.3, MVC3, 면도기를 사용 중이며 제품 ID 및 이름을 얻으려고 시도합니다. DB에 대해 Sql 쿼리를 실행할 때 괜찮습니다.
SQL 쿼리()는 표준 별개가 작동하지 않는 이유는 그래서
SELECT DISTINCT [ProductId]
,[Product_Name]
FROM [dbo].[PRODUCT]
해당 테이블의 유일한 다른 열은 국가 코드입니다. 나는 그것을라는 곳
여기public class DistinctProduct : IEqualityComparer<PRODUCT>
{
public bool Equals(PRODUCT x, PRODUCT y)
{
return x.ProductId.Equals(y.ProductId);
}
public int GetHashCode(PRODUCT obj)
{
return obj.ProductId.GetHashCode();
}
}
은 다음과 같습니다
내가 여기 IEqualityComparer
을 만들만큼 멀리 갔다는 코드입니다.
IEqualityComparer<PRODUCT> customComparer = new DistinctProduct();
IEnumerable<PRODUCT> y = db.PRODUCTs.Distinct(customComparer);
그러나 쳤을 때의 나는 진술 그것의 오류가 그 마지막 줄 ...
LINQ to Entities does not recognize the method 'System.Linq.IQueryable`1[MyService.Models.PRODUCT] Distinct[PRODUCT](System.Linq.IQueryable`1[MyService.Models.PRODUCT], System.Collections.Generic.IEqualityComparer`1[MyService.Models.PRODUCT])' method, and this method cannot be translated into a store expression.
사람이 내가 잘못 뭘하는지 말해 줄래?
감사합니다,
데이비드