내 질문에이 솔루션을 제공했습니다 ... 매우 흥미로운 것 같습니다. 내가 노력하고 LINQ 이해하는 학습.이 구현하는 동안이 오류가 발생합니다. 나는 여기에 잘못 가고있는 것을 모릅니다 ... 전문가의 조언을 구합니다.IEqualityComparer 오류 <T>
는public class CategotiesEqualityComparer : IEqualityComparer<ac_Categories>
{
public bool Equals(ac_Categories x, ac_Categories y)
{
return x.ThumbnailAltText.Trim() == y.ThumbnailAltText.Trim();
}
public int GetHashCode(ac_Categories obj)
{
return obj.ThumbnailAltText.Trim().GetHashCode();
}
}
var catlist = _db.ac_Categories
.Where(c => c.VisibilityId == 0 && c.ThumbnailAltText != null
&& (!c.ThumbnailAltText.StartsWith("gifts/")
&& !c.ThumbnailAltText.StartsWith("email/")
&& !c.ThumbnailAltText.StartsWith("news/")
&& !c.ThumbnailAltText.StartsWith("promotions/")
&& !c.ThumbnailAltText.StartsWith("the-knowledge/")))
.Distinct(new CategotiesEqualityComparer()).ToList();
ERROR:LINQ to Entities does not recognize the method 'System.Linq.IQueryable
1[WebMgr.ac_Categories] Distinct[ac_Categories](System.Linq.IQueryable
1[WebMgr.ac_Categories], System.Collections.Generic.IEqualityComparer`1[WebMgr.ac_Categories])' method, and this method cannot be translated into a store expression
참고 :
나는 데이터베이스 첫 번째 방법을 이용하고 있고 ac_Categories
하면 해당를 사용하여 만들어집니다 ...
귀하의 질문에 이미 답변되었습니다 : http://stackoverflow.com/a/1011014/222163 –