在使用EntityFramework时,当我试图编译以下代码时,我得到了错误“带有语句体的lambda表达式不能转换为表达式树”:
Obj[] myArray = objects.Select(o =>
{
var someLocalVar = o.someVar;
return new Obj() {
Var1 = someLocalVar,
Var2 = o.var2 };
}).ToArray();
我不知道这个错误意味着什么,最重要的是如何修复它。任何帮助吗?
对于您的具体情况,body是用于创建变量,切换到IEnumerable将强制所有操作在客户端处理,我提出以下解决方案。
Obj[] myArray = objects
.Select(o => new
{
SomeLocalVar = o.someVar, // You can even use any LINQ statement here
Info = o,
}).Select(o => new Obj()
{
Var1 = o.SomeLocalVar,
Var2 = o.Info.var2,
Var3 = o.SomeLocalVar.SubValue1,
Var4 = o.SomeLocalVar.SubValue2,
}).ToArray();
编辑:重命名为c#编码惯例