LINQ - to Entities无法识别方法Boolean(int32)

时间:2012-03-09 12:27:01

标签: .net linq entity-framework int32

我有一个名为Person的类,它有一个名为hasPermission(Int 32)

的方法

我正打算打电话给一些linq并尝试了各种选项,但如果有人有任何想法,还没有设法找到解决方案,请帮助。

我目前有

IEnumerable<Person> co = this.Person();

//this.Person().Where(o => o.IsDeleted == false);

//    src.Where(o => o.IsDeleted == false).Select(v => new { Text = v.Name });
return this.Json(co,JsonRequestBehavior.AllowGet);

你可以在评论中看到我尝试过的其他几件事。

感谢您的提前帮助

吉马

1 个答案:

答案 0 :(得分:1)

好的,因为这是LINQ to Entities,你需要使用AsEnumerable方法:

// this.Person().Where(o => !o.IsDeleted) is translated by EF, the rest isn't
this.Person().Where(o => !o.IsDeleted).AsEnumerable().Where(p => p.hasPermission(5));

AsEnumerable扩展方法将LINQ to Entities结果包装为通用IEnumerable。因此,后续的LINQ不会被EF转换为SQL,而只是执行。

有关AsEnumerable的更多信息,请参阅MSDN:http://msdn.microsoft.com/en-us/library/bb335435.aspx