LINQ & class method
本文关键字:class method amp LINQ | 更新日期: 2023-09-27 18:08:51
如何在类中调用方法并在LINQ中使用该方法进行选择?嗯. .这就是我的意思:我的类"Law"保存了一个版本列表,并提供了一个获取当前版本的方法:
public class Law
{
...
public virtual IList<LawVersion> Versions {get; set;}
public LawVersion CurrentVersion()
{
// Given a list of Laws, how can I use this method in my selection clause?
return Versions.OrderByDescending(x => x.CreationDate).First();
}
}
我想获得所有当前lawversion的列表。我试过了:
Context.Laws.Select(x => x.CurrentVersion())
以
结尾"LINQ to Entities不识别该方法.. "无法翻译存储表达式"
这是因为Context.Laws
是数据库的接口,您在其上执行的每个iquerable操作都将由实体框架转换为查询。就像你的Select()
呼叫。但是它不能把你的c#方法转换成查询,所以它抛出。
你需要首先实现列表,例如通过调用.ToList()
,然后调用该列表上的方法:
Context.Laws.ToList().Select(x => x.CurrentVersion())