【发布时间】:2021-12-03 22:26:03
【问题描述】:
我尝试将 Linq 查询分为 3 个(总计、成功、失败),但到目前为止“总计”Linq 查询工作正常。请帮我获取“成功”、“失败”列(它有多个状态,我们必须检查每个交易和目的地的最后一列) 注意:您需要按 ProcessTime、TransactionId、Destination 分组并检查最后一列是成功还是失败然后应用计数(我们使用 oracle 作为后端)
LINQ 用于总计数
var query = (from filetrans in context.FILE_TRANSACTION
join route in context.FILE_ROUTE on filetrans.FILE_TRANID equals route.FILE_TRANID
where
filetrans.PROCESS_STRT_TIME >= fromDateFilter && filetrans.PROCESS_STRT_TIME <= toDateFilter
select new { PROCESS_STRT_TIME = DbFunctions.TruncateTime((DateTime)filetrans.PROCESS_STRT_TIME), filetrans.FILE_TRANID, route.DESTINATION }).
GroupBy(p => new { p.PROCESS_STRT_TIME, p.FILE_TRANID, p.DESTINATION });
var result = query.GroupBy(x => x.Key.PROCESS_STRT_TIME).Select(x => new { x.Key, Count = x.Count() }).ToDictionary(a => a.Key, a => a.Count);
【问题讨论】:
-
发布 Total 的工作查询,以便我们可以将其用作模型来建议如何编写其他查询
-
您的
FileStatus表似乎有错误的列名?另外,表关系是什么?我看不出您的输出是如何从您的示例数据中得出的。 -
你不应该发帖duplicate questions。
-
我已经为@CaiusJard 添加了“Linq”查询
-
对不起。我的错。 Filestatue 表列是 FileStatusID 和 FileStatusName 。我删除了重复的问题@NetMage
标签: c# entity-framework linq linq-to-sql