我有一个名为“target”的模型,由带有集合地址的 entityframework 检索。
在删除了另一个集合中所有不超过的项目后,我正在保存我的 Entity Framework 上下文。
但是,当检查我的数据库时,记录仍然存在。虽然我的 linq 代码确保从集合中删除项目。
这是我的 linq 代码:
using (IUnitOfWork uow = _uow.CreateUnitOfWork())
{
var target = _repository.GetByBron(uow, bron.BronId);
target.Adressen.RemoveAll(x => source.Adressen.All(y => !y.Equals(x)));
//Which calls Context.SaveChanges(); inside the unit of work class
uow.Save(_logger);
}
更新:问题不是从集合中删除我的记录。当我在上下文中调用保存时。我的数据库中的关系记录仍然存在...没有删除任何内容...而且它已从集合中删除。
已解决 我现在直接将其从上下文中删除。 (带有单独的存储库对象)
最佳答案
这在很大程度上取决于关系的配置。参见 Entity Framework .Remove() vs. .DeleteObject()
由于您的关系听起来是多对多,您可能需要为地址本身调用 DeleteObject,因为 EF 不会自动删除孤立记录。
关于c# - 从集合 Entity Framework 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381612/