Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Linq lambda返回多个字段_C#_.net_Lambda - Fatal编程技术网

C# 从Linq lambda返回多个字段

C# 从Linq lambda返回多个字段,c#,.net,lambda,C#,.net,Lambda,我有以下代码,它从columnName=Y'的数据库返回结果。在我想限制查询返回的字段之前,这些代码词都很好 我得到了错误 return db.Approved.Where(predicate).Select(x =>new{x.RefNo, x.RefGroup, x.Location }); 无法将类型“System.Linq.IQueryable[AnonymousType1]”隐式转换为“System.Linq.IQueryable[MyApp.Models.Approved

我有以下代码,它从columnName=Y'的数据库返回结果。在我想限制查询返回的字段之前,这些代码词都很好

我得到了错误

return db.Approved.Where(predicate).Select(x =>new{x.RefNo, x.RefGroup, x.Location });  
无法将类型“System.Linq.IQueryable[AnonymousType1]”隐式转换为“System.Linq.IQueryable[MyApp.Models.Approved]”。存在显式转换。是否缺少强制转换

public IQueryable<Approved> ReturnRecordsByObjectiveFlag(string columnName)
    {
        var param = Expression.Parameter(typeof(Approved), "x");
        var predicate = Expression.Lambda<Func<Approved, bool>>(
            Expression.Equal(
                Expression.PropertyOrField(param, columnName),
                Expression.Constant('Y',typeof(char?))
            ), param);
        return db.Approved.Where(predicate).Select(x =>new{x.RefNo, x.RefGroup, x.Location });
    }
我在哪里演演员

非常感谢Marc Gravell使用同样的方法

这应该是可行的

return db.Approved.Where(predicate).Select(x =>new Approved{x.RefNo, x.RefGroup, x.Location });  
因为select语句正在创建一个匿名类型,所以它给出了这个错误

return db.Approved.Where(predicate).Select(x =>new Approved{x.RefNo, x.RefGroup, x.Location });  
因为select语句正在创建一个匿名类型,所以它给出了该错误。请尝试下面的代码

return db.Approved.Where(predicate).Select(x =>new {x.RefNo, x.RefGroup, x.Location });  
创建匿名对象时。

请尝试以下代码

return db.Approved.Where(predicate).Select(x =>new {x.RefNo, x.RefGroup, x.Location });  

当它创建匿名对象时。

我之前确实尝试过,但我得到了错误:无法使用集合初始值设定项初始化类型“MyApp.Models.Approved”,因为它没有实现“System.Collections.IEnumerable”您可以改为使用属性初始值设定项,因此:新批准的{PROPERTYNAME=VALUE,PROP2=VAL2等使用您批准的类的属性。我确实在前面尝试过,但我得到了错误:无法使用集合初始值设定项初始化类型“MyApp.Models.Approved”,因为它没有实现“System.Collections.IEnumerable”。您可以改为使用属性初始值设定项,因此:new Approved{PROPERTYNAME=VALUE,PROP2=VAL2等具有您批准的类的属性。