【问题标题】:how to use a method with 2 parameters in my lambda expression如何在我的 lambda 表达式中使用具有 2 个参数的方法
【发布时间】:2011-05-26 14:20:01
【问题描述】:

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

但我在执行时收到错误消息,说我无法在查询中使用该方法 有没有办法让它工作?

【问题讨论】:

  • 您使用的是EF,查询(Where)必须转换为SQL...

标签: linq lambda expression


【解决方案1】:

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

【讨论】:

  • 然后告诉“为什么”或发表评论。
猜你喜欢
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多