为了账号安全,请及时绑定邮箱和手机立即绑定

“带有语句主体的lambda表达式无法转换为表达式树”

“带有语句主体的lambda表达式无法转换为表达式树”

C#
青春有我 2019-11-14 14:28:58
在使用EntityFrameworkA lambda expression with a statement body cannot be converted to an expression tree时,尝试编译以下代码时出现错误“ ”:Obj[] myArray = objects.Select(o =>{    var someLocalVar = o.someVar;    return new Obj() {     Var1 = someLocalVar,    Var2 = o.var2 };}).ToArray();我不知道该错误的含义以及最重要的解决方法。有什么帮助吗?
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

您可以在lamba表达式中将语句主体用于IEnumerable集合。试试这个:


Obj[] myArray = objects.AsEnumerable().Select(o =>

{

    var someLocalVar = o.someVar;


    return new Obj() 

    { 

        Var1 = someLocalVar,

        Var2 = o.var2 

    };

}).ToArray();

注意:

使用此方法时请仔细考虑,因为这样,您会将所有查询结果存储在内存中,这可能会对其余代码产生不良影响。


查看完整回答
反对 回复 2019-11-14
?
米脂

TA贡献1836条经验 获得超3个赞

在不了解您在做什么的情况下(Linq2Objects,Linq2Entities,Linq2Sql?),这应该可以使它工作:


Arr[] myArray = objects.AsEnumerable().Select(o => {

    var someLocalVar = o.someVar;


    return new Obj() { 

        Var1 = someLocalVar,

        Var2 = o.var2 

    }; 

}).ToArray();


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 1194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信