关于efcoreNoSQL的信息

efcore并发时如何获取某列最大值

一、背景

武义网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

最近在一个项目里使用 EFCore 遇到需要 group 分组后,只选出每组中含有最大值的数据行。

二、解决方案

先分组用 group 找到分组中的最大值,再用  join  查出对应的行。

var groupFlows = Context.SetTInstanceFlow().AsNoTracking()

.GroupBy(f = f.ProcessInstanceId)

.Select(g = new { instanceId = g.Key, finish = g.Max(f = f.Finish) });

var flows = Context.SetTInstanceFlow().AsNoTracking()

.Join(groupFlows,

o = new { f1 = o.ProcessInstanceId, f2 = o.Finish },

i = new { f1 = i.instanceId, f2 = i.finish },

(o, i) = new { o, i })

.Select(g = new

{

Id = g.o.Id,

ProcessInstanceId = g.i.instanceId,

IsCanUndo = g.o.IsCanUndo,

});

关键点是红色部分的键值对匹配。

三、参考资料

select-rows-with-maximum-value-on-a-column-in-sql-server

join-query-in-ef-core/

.net ef core 检查是否插入成功

可以使用查询语句检查是否插入成功:

目前支持贪婪加载:使用Include加载 关联表 的数据,这种方式 使用一条Join的 Sql语句进行查询;

贪婪加载的优势在于仅执行1次SQL查询即返回所需要的结果。但使用JOIN查询在数据库记录条数较多时,多条简单的SQL查询往往比一条复杂的JOIN查询效率要好。

ef core 子对象集合插入顺序

数据库的顺序是有严格定义的,分物理顺序、逻辑顺序!! 物理顺序默认根据插入时间排列,也可以通过特定sql语句控制。

efcore 不打印sql

模式不对。efcore只有在Debug模式下才打印sql,所以我们在F5运行之前,需要调整调试模式,不要选择IISExpress,选择自己的项目web名称的那个,就可以打印了。


网页名称:关于efcoreNoSQL的信息
文章转载:http://scjbc.cn/article/hcoecj.html

其他资讯