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

时间:2011-05-26 14:20:01

标签: linq lambda expression

我使用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();

但我在执行时遇到错误,说我无法在查询中使用该方法 有没有办法让它发挥作用?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有办法让它发挥作用 原因是LINQ查询并不是真正作为.NET代码执行,而是由EF提供​​程序转换为SQL。此EF提供程序不知道如何将AreNear转换为SQL,因此它失败。