错误:System.Collections.Generic.List<;匿名类型#1>;
本文关键字:类型 gt lt Collections Generic List 错误 System | 更新日期: 2023-09-27 18:22:28
我得到了错误。这是我的功能:
public List<PlainBrgMetric> GetPlainBrgMetricProgram(long programLOBID)
{
var query = _context.metrics.Join(_context.universals,
m => m.metricID,
u => u.orderByAsc,
(metric, universal) => new
{
metric.metricID,
metric.programLOBID,
metric.label,
universal.groupValue1
}).ToList();
return query;
}
要修复它,必须返回一个PlainBrgMetric
列表,返回的是一个匿名对象列表。
您应该按如下方式编辑代码:
public List<PlainBrgMetric> GetPlainBrgMetricProgram(long programLOBID)
{
var query = _context.metrics.Join(_context.universals,
m => m.metricID,
u => u.orderByAsc,
(metric, universal) => new PlainBrgMetric
{
//Populate the object properties
...
}).ToList();
return query;
}
这是预期的行为,因为这里:
(metric, universal) => new
{
metric.metricID,
metric.programLOBID,
metric.label,
universal.groupValue1
}
您创建的是匿名类型,而不是PlainBrgMetric
对象。
如果PlainBrgMetric
至少有四个与您创建的匿名类型属性相同的属性,您可以快速修复:
(metric, universal) => new PlainBrgMetric
{
MetricID = metric.metricID,
ProgramLOBID = metric.programLOBID,
Label = metric.label,
GroupValue1 = universal.groupValue1
}
否则您必须使用这四个属性声明另一个类型,并更改方法的签名和您在上面为每个联接结果创建的类型。
我没有提到dynamic
对象的替代方案,因为我从您的代码中假设您希望返回一个强类型对象的集合。