使用c#在LINQ查询中获取连接表最大值的最有效方法
本文关键字:最大值 方法 有效 连接 获取 LINQ 查询 使用 | 更新日期: 2023-09-27 18:14:05
我正试图找到最有效的方法来获得LINQ中连接表中的最新记录。
这个查询可能处理数千条记录,所以我不想执行子查询。
我需要条目中的所有内容,但只需要"Notes"表中字段名为SubmittedDate的最近日期。
var items = (from t1 in db.Items
from t2
in db.Notes
.Where(o => (t1.Item_ID == o.Item_ID))
select new ItemModel
{
Name = t1.Name,
MostRecentUpdate = t2.SubmittedDate <== Need max value in model
});
看起来你可能只是想要一个组连接:
var items = from t1 in db.Items
join t2 in db.Notes on t1.Item_ID equals t2.Item_ID into notes
select new ItemModel
{
Name = t1.Name,
MostRecentUpdate = notes.Max(x => (DateTime?) x.SubmittedDate)
};
如果匹配的Notes
行中没有非空日期,则MostRecentUpdate
应该为空。至少,这就是LINQ到对象的行为,所以手指交叉抽象保持…