如何实现以下SQL查询作为实体查询的linq?

时间:2010-09-07 17:16:26

标签: c# mysql linq-to-entities

如何实现以下SQL查询作为实体查询的linq?

select *, MIN(QueuedDate)
from pcm_transactions
where QueuedDate IS NOT NULL And ExecutionDate IS NULL
group by SimId

我花了好几个小时思考并尝试各种方法 - 希望在这里找到正确的答案。

修改

这是我的第一次尝试之一:

//  Get the oldest queued action
var queuedTransactions =
    (from t in db.TransactionSet
        where t.QueuedDate.HasValue && !t.ExecutionDate.HasValue
        group t by new { t.TransactionId, t.QueuedDate } into tr
        select new
        {
            Transaction = db.TransactionSet.First(q => q.TransactionId == tr.Key.TransactionId), 
            QueuedDate = tr.Min(m => m.QueuedDate)
        }).ToList();

1 个答案:

答案 0 :(得分:0)

  

一个问题是SQL无法启动;你必须   每列不是聚合表达式(例如,min / max   等),所以“选择*”根本没有意义。你有样本数据吗?   和所需的结果,以帮助我们将其重写为Linq?

- 引自Will的评论