我写了这个声明:
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>
{
........................
.............................
}
客户有一个扩展方法 Contains (返回一个布尔值),因为它是DbSet
.
那么我哪里错了?