我需要从一个需要在LINQ查询中运行的函数中获取结果.这个结果绑定到网格但在运行时遇到这个错误:
LINQ to Entities无法识别方法'System.String GetName(System.Type,System.Object)'方法,并且此方法无法转换为商店表达式.
这是我的代码:
public IQueryable GetForRah_CapacityList(XQueryParam param) { var result = (from x in Data() select new { Rah_CapacityId = x.Rah_CapacityId, Rah_CapacityName = x.Rah_CapacityName, Rah_St = Enum.GetName(typeof(Domain.Enums.CapacityState), x.Rah_St), Rah_LinesId = x.Rah_LinesId }).OrderByDescending(o => new { o.Rah_CapacityId }); return result; }
Salah Akbari.. 6
GetName
无法转换为T-SQL,Linq to Entities无法识别它.您可以修改如下代码:
var result = (from x in Data().AsEnumerable() select new { Rah_CapacityId = x.Rah_CapacityId, Rah_CapacityName = x.Rah_CapacityName, Rah_St = Enum.GetName(typeof(Domain.Enums.CapacityState), x.Rah_St), Rah_LinesId = x.Rah_LinesId }).OrderByDescending(o => new { o.Rah_CapacityId });
在.ToList()
加载数据之后,对内存中已有的数据使用Linq to Objects执行任何进一步的操作(例如select).
编辑:还有你的方法的返回类型是IQueryable
当您的查询IOrderedEnumerable
的匿名类型,所以您应该改变方法的类型System.Object
或一个更好的解决方案创建一个类,值发送到类的属性,然后返回.
GetName
无法转换为T-SQL,Linq to Entities无法识别它.您可以修改如下代码:
var result = (from x in Data().AsEnumerable() select new { Rah_CapacityId = x.Rah_CapacityId, Rah_CapacityName = x.Rah_CapacityName, Rah_St = Enum.GetName(typeof(Domain.Enums.CapacityState), x.Rah_St), Rah_LinesId = x.Rah_LinesId }).OrderByDescending(o => new { o.Rah_CapacityId });
在.ToList()
加载数据之后,对内存中已有的数据使用Linq to Objects执行任何进一步的操作(例如select).
编辑:还有你的方法的返回类型是IQueryable
当您的查询IOrderedEnumerable
的匿名类型,所以您应该改变方法的类型System.Object
或一个更好的解决方案创建一个类,值发送到类的属性,然后返回.