问题描述
||
我使用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,因此失败。