从集合实体框架中删除项

本文关键字:删除 框架 集合 实体 | 更新日期: 2023-09-27 17:50:09

我有一个名为'target'的模型,由实体框架通过集合地址检索。

在删除所有在另一个集合中不超过的项目后,我正在保存我的实体框架上下文。

然而,当检查我的数据库时,记录仍然存在。而我的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);
}    

Update:问题不是从集合中删除我的记录。当我在context上调用save时。我的数据库里的关系记录还在…没有任何东西被删除……当它从集合中删除时。

我现在直接把它从上下文中移除。(使用独立的存储库对象)

从集合实体框架中删除项

这很大程度上取决于关系的配置。参见Entity Framework .Remove() vs. deleteobject ()

由于您的关系听起来是多对多的,因此您可能需要为地址本身调用DeleteObject,因为EF不会自动删除孤立的记录。