【发布时间】:2020-05-11 21:28:14
【问题描述】:
我有两个表,Exam 和 ExamGroup,它们具有 *:* 关系。我得到了一个List<Exam>,需要确定该列表的ExamGroup 是否已经存在。所以提供的列表可能是 A+B+C,ExamGroups 将包含 A+B、A+C、A+B+C+D+E 等,我需要确定 A+B+C 是否存在如果没有,则创建它。下面的代码似乎可以做到,但我想知道是否可以在单个表达式中做到这一点?
var givenExams = /* Provided list of exams */
var examGroup = _context
.ExamGroups
.Include(x => x.ExamGroupsExam) // Mapping table for EF Core
.ThenInclude(y => y.Exam)
.AsEnumerable();
examGroup = givenExams.Aggregate(
examGroup,
(current, exam) => current.Where(x => x.Exams.Contains(exam)));
此时examGroup 是相关组(具有我关心的 ID 和其他字段)或 null,此时我知道要创建它。
【问题讨论】:
标签: c# linq linq-to-sql entity-framework-core