LINQ在表中使用复合键进行子选择
我在数据库中有一个通过Entity Framework查询访问的设置表。 设置具有复合键:类别,组,名称,目标,已修改。 设置显然也包含非关键字段,如值。
我如何编写一个查询,为我提供相同的(类别,组,名称,目标)中的最新设置?
更具体地说,我想要所有最新的设置实体,包括非关键字段,匹配特定的类别,组,目标组合。
例如:为类别为“数据库”且组为“超时”的所有目标提供所有最新设置。
这可以分两步完成,初始查询返回匹配条件的所有[Category,Group,Name,Target,Modified]键,然后循环查询每个键的设置,但这会产生大量数据库查询,创造开销。
如果我想最小化框架执行的SQL数据库查询的数量,我将如何使用LINQ?
var query = from s in db.Settings group s by new { s.Category, s.Group, s.Name, s.Target, } into sg select new { Setting = sg.OrderByDescending(r => r.Modified).FirstOrDefault() };
编辑 – 如果要返回设置列表
List list = (from s in db.Settings group s by new { s.Category, s.Group, s.Name, s.Target, } into sg select sg.OrderByDescending(r => r.Modified).FirstOrDefault() ).ToList();
尝试使用以下LINQ语句。
上述就是C#学习教程:LINQ在表中使用复合键进行子选择分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
List latestSettings = db.Settings.OrderByDescending(x => x.Modified).GroupBy(x => new {x.Category, x.Group, x.Name, x.Target}, x => x) .Select(result => result.FirstOrDefault()) .ToList();
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1019305.html