2015-11-19 45 views
0

我收到错误消息。这里是我的功能:错误:System.Collections.Generic.List <AnonymousType#1>

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

“我得到的错误”:

如下您应该修改您的密码? (并且请将您的代码重新格式化为更具可读性......) –

+0

尽管基本上,当您打算返回List 时,您试图返回一个匿名类型对象列表。也许你的意思是'新的PlainBrgMetric {...}'而不是'new {...}'? –

+0

或者返回列表 Camo

回答

1

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

(metric, universal) => new 
         { 
          metric.metricID, 
          metric.programLOBID, 
          metric.label, 
          universal.groupValue1 
         } 

您创建一个匿名类型,而不是一个PlainBrgMetric对象。

只要PlainBrgMetric至少有相同的四个属性的anonymou的类型属性,您可以创建,你可以做一个快速修复:

​​

否则必须声明另一种类型的这些四个属性,并更改您的方法的签名和上面为每个连接结果创建的类型。

我没有提到dynamic对象的替代方案,因为我从您的代码中假定您想要返回强类型对象的集合。

+0

谢谢。这将工作。 :) – Reuel

1

要修复它,你必须返回一个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; 
} 
相关问题