如何在我的lambda表达式中使用带有2个参数的方法

问题描述

|| 我使用linq使用Entity Framework从数据库访问表
MyDBEntities context = new MyDBEntities;
int id = 111;
var item = context.MyTable.Where(i => i.id == id).Single();
这可以正常工作,但是现在我创建了一个我想使用的方法来代替id检查:
bool AreNear(string Adress,object Adress)
我想用这种方式
 string adress = \"...\";
 var item = context.MyTable.Where(i => AreNear(i.adress,adress) ).Single();
但执行时出现错误提示我无法在查询中使用该方法 有没有办法使其工作?     

解决方法

不幸的是,没有办法使它起作用。 这样做的原因是LINQ查询不是真正作为.NET代码执行,而是由EF提供​​程序转换为SQL。该EF提供程序不知道如何将“ 3”转换为SQL,因此失败。