创建新记录后,我想检查SortOrder
任何现有记录的当前最大值是多少,然后将 1 添加到新记录。这是我的查询:
role.SortOrder = await db.Roles
.Where(b => b.Id == BranchId)
.OrderByDescending(s => s.SortOrder)
.Select(s => s.SortOrder)
.FirstOrDefaultAsync() + 1;
我认为我在查询中所做的是对所有现有记录按 SortOrder 降序进行排序,然后选择应该具有最高值的顶部记录。
但是我所有的记录都是SortOrder
1。
我的错在哪里?
我认为问题出在你的Where
条款上。您比较BranchId
到Id
的Role
。可能没有BranchId
找到具有 id 的角色,因此您只能从您的 中获得整数默认值 0,您将FirstOrDefaultAsync()
其增加 1。
如果你修复你的Where
所以它实际上返回结果,它可能会起作用:
var sortOrder = roles
.Where(r => r.BranchId == BranchId)
.Max(r => r.SortOrder) + 1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句