私はこの声明を書きました:
if (!db.Customers.Contains<Customer>(customer,customerCompairor))
{
db.Customers.Add(customer);
}
次のエラーが発生する理由がわかりません。
LINQ to Entities はメソッド 'Boolean Contains[Customer](System.Linq.IQueryable
1[DBInteractor.Customer], DBInteractor.Customer, System.Collections.Generic.IEqualityComparer
1[DBInteractor.Customer])' メソッドを認識せず、このメソッドはストア式に変換できません。
私は参照を作成しました:
IEqualityComparer<Customer> customerCompairor = new PMKeyCompairor();
そしてPMKeyCompairorは実装していますIEqualityComparer<Customer>
class PMKeyCompairor:IEqualityComparer<Customer>
{
........................
.............................
}
Customers には、拡張メソッド Contains (bool を返す) がありますDbSet
。
それで、どこが間違っているのですか?