我使用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();
但我在执行时遇到错误,说我无法在查询中使用该方法 有没有办法让它发挥作用?
答案 0 :(得分:1)
不幸的是,没有办法让它发挥作用
原因是LINQ查询并不是真正作为.NET代码执行,而是由EF提供程序转换为SQL。此EF提供程序不知道如何将AreNear
转换为SQL,因此它失败。