【发布时间】:2020-04-27 03:34:48
【问题描述】:
我有 2 个问题。如果委员会有超过 1 个成员,则首先获取委员会负责人的全名。
var result = await db.ExpertCommittees
.Where(f => f.Id == committeeId)
.Where(f => f.ExpertCommitteeMembers.Count > 1)
.Select(f => f.ExpertCommitteeMembers
.Where(m => m.IsCommitteeHead)
.FirstOrDefault().Expert.FullName)
.FirstOrDefaultAsync();
如果委员会只有 1 个成员,则第二个获得唯一委员会成员的全名
var result2 = await db.ExpertCommittees
.Where(f => f.Id == committeeId)
.Where(f => f.ExpertCommitteeMembers.Count == 1)
.Select(f => f.ExpertCommitteeMembers
.FirstOrDefault().Expert.FullName)
.FirstOrDefaultAsync();
是否可以检查委员会有多少成员,然后在同一个查询中返回正确的名称?还是我必须先检查委员会有多少成员,然后单独运行适当的查询?
【问题讨论】:
-
为什么
m.IsCommitteeHead不够用?是否有f.ExpertCommitteeMembers.Count == 1的行并且没有 Head? ... 编辑: 即使您可以尝试按 IsCommitteeHead 订购 desc 并先拿下 -
据我了解,查询在调用之前不会运行 (if(result2.something){})。有了这个,你不能得到一个计数,你必须做 .Count()。误会请见谅
-
有可能成为委员会中唯一的人而不是委员会的负责人
-
您能提供一些示例数据并期待结果吗?
标签: c# linq if-statement conditional-statements