【问题标题】:group by with repository and entity framework与存储库和实体框架分组
【发布时间】:2012-10-06 08:33:50
【问题描述】:

我有这个实体框架代码:

repository.GetObjectQuery(Of COUNL1)().
     Where(Function(a) a.CDATE >= '2012/01/01' And 
           a.CDATE <= '2012/12/01' And 
           COID = 88 ).
     GroupBy(Function(m) m.CDATE).
     Select(Function(n) New PointXY With {
        .Y = n.Sum(Function(k) k.TOTALVH), 
        .X = n.First().CDATE}).
     ToList()

出现此错误:

Only parameterless constructors and initializers are supported in LINQ to Entities.

说明: 我想按 CDATE 和 TOTALVH 的总和进行分组,然后像这样把它放在 PointXY 类中

PointXY {.Y = Sum(TOTALVH), .X = CDATE})

sql查询:

SELECT        SUM(TOTALVH) AS EXPR1, CDATE
FROM            COUNL1
WHERE        (CDATE >= '2012/01/01') AND (CDATE <= '2012/12/01') AND   (COID  = 88)
GROUP BY CDATE 

请帮帮我,谢谢。

【问题讨论】:

    标签: .net vb.net linq entity-framework-4 repository


    【解决方案1】:

    错误信息是:

    LINQ 仅支持无参数构造函数和初始化程序 到实体。

    所以去看看你的PointXY 课程吧。

    如果它没有无参数构造函数...只需添加一个!

    Public Sub New()
    End Sub
    

    【讨论】:

    • 使用这个,但是报错:方法'First'只能作为最终查询操作。请考虑在此实例中使用“FirstOrDefault”方法。
    • @wilsonwilsonpuor 好,然后...使用 FirstOfDefault () ?
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多