我如何最优雅地分享左边伴随累积的SQL作为LINQ问题

SQL:

SELECT
   u.id,
   u.name,
   isnull(MAX(h.dateCol), '1900-01-01') dateColWithDefault
FROM universe u
LEFT JOIN history h 
   ON u.id=h.id 
   AND h.dateCol<GETDATE()-1
GROUP BY u.Id, u.name
0
2019-05-04 00:22:15
资源 分享
答案: 1

虽然将空值的处理延迟到代码的补救措施可以是:

前几天的DateTime = DateTime.Now.Date.AddDays(-1);

var collection=
    from u in db.Universe
    select new
    {
        u.id,
        u.name,
        MaxDate =(DateTime?)
       (
           from h in db.History
           where u.Id == h.Id
           && h.dateCol < yesterday
           select h.dateCol 
       ).Max()
    };

这并没有特别生成相同的SQL,但确实给出了相同的合理结果。 将“复杂”的SQL问题转换为LINQ并不是一成不变的。

0
2019-05-07 17:35:19
资源