14
おはようございます!考えるEF Distinct(IEqualityComparer)エラー
:
public class FooClass
{
public void FooMethod()
{
using (var myEntity = new MyEntity)
{
var result = myEntity.MyDomainEntity.Where(myDomainEntity => myDomainEntity.MySpecialID > default(int)).Distinct(new FooComparer);
}
}
}
public class FooComparer : IEqualityComparer<MyEntity.MyDomainEntity>
{
public bool Equals(MyEntity.MyDomainEntity x, MyEntity.MyDomainEntity y)
{
return x.MySpecialID == y.MySpecialID;
}
public int GetHashCode(MyEntity.MyDomainEntity obj)
{
return obj.MySpecialID.GetHashCode();
}
}
これはコンパイルされますが、実行時に、私はLinq to Entity could not translate Comparer
-Exceptionを取得します。
提案がありますか?
ない.NETレイヤでこれを行うにはチャンスがありますか?何とかSQLでこれを行うEF呼び出しを教えてください? –
私の編集使用のグループ分けを見ると、あなたは希望の動作を得るでしょう。フレームワークに「DistinctBy」を持っているといいです(そしてEFなどで処理されます)が、グループ化されたバージョンではあなたが望むことができると思います。 –
ありがとう!これは、あなたがIQueryableでグループをやっているので、私にとって非常に納得のいくものです。私はこれを後で試してみよう! PS:はい、Distinct-Conditionが正しいことを確認しました:) –