【发布时间】:2023-04-11 12:42:02
【问题描述】:
我们正在将现有的 MVC6 EF6 应用程序移植到 Core。
EF Core 中是否有更新多对多关系的简单方法?
我在 EF6 中清除列表并用新数据覆盖它的旧代码不再有效。
var model = await _db.Products.FindAsync(vm.Product.ProductId);
model.Colors.Clear();
model.Colors = _db.Colors.Where(x =>
vm.ColorsSelected.Contains(x.ColorId)).ToList();
【问题讨论】:
-
不再工作是什么意思?
-
它不再产生预期的结果。实体框架核心确实更改跟踪不同。
-
我遇到了类似的问题,尝试了下面的各种答案,最后通过确保我在子集合上调用
Include()和ThenInclude()来修复它(在你的示例中为Colors) .简单得多。这篇文章也很有用:thereformedprogrammer.net/… -
目前还不清楚您所说的“不再有效”是什么意思。如果关系的数量有限并且可以使用 EF 核心来完成此操作,那么仅替换关系是最简单的方法。
标签: entity-framework asp.net-core