错误:System.Collections.Generic.List <anonymoustype#1>

时间:2015-11-19 09:52:43

标签: c# linq

我收到了错误。这是我的功能:

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;
}

2 个答案:

答案 0 :(得分:1)

这是预期的行为,因为这里:

(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对象的替代方法,因为我假设你要从代码中返回一个强类型对象的集合。

答案 1 :(得分:1)

要修复它,您必须返回$resource('/SSystems/authenticateUser', data); 列表,您要返回的是匿名对象列表。

您应该按如下方式编辑代码:

PlainBrgMetric