C# 从Linq lambda返回多个字段
我有以下代码,它从columnName=Y'的数据库返回结果。在我想限制查询返回的字段之前,这些代码词都很好 我得到了错误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
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等具有您批准的类的属性。