如何实现以下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();
答案 0 :(得分:0)
一个问题是SQL无法启动;你必须 每列不是聚合表达式(例如,min / max 等),所以“选择*”根本没有意义。你有样本数据吗? 和所需的结果,以帮助我们将其重写为Linq?
- 引自Will的评论