当前位置:  开发笔记 > 编程语言 > 正文

在LINQ中获取结果函数而不转换为存储表达式

如何解决《在LINQ中获取结果函数而不转换为存储表达式》经验,为你挑选了1个好方法。

我需要从一个需要在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或一个更好的解决方案创建一个类,值发送到类的属性,然后返回.



1> Salah Akbari..:

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或一个更好的解决方案创建一个类,值发送到类的属性,然后返回.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有