我使用linq使用实体框架从数据库访问表
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提供程序不知道如何将AreNear
转换为SQL,所以它失败了。