从集合实体框架中删除项目

时间:2014-03-13 14:24:22

标签: c# entity-framework-4 linq-to-entities

我有一个名为' 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);
}    

更新:问题不在于从集合中删除我的记录。当我在上下文中调用save时。我的数据库中的关系记录仍然存在......没有删除任何内容... aldo它已从集合中删除。

解决 我现在直接从上下文中删除它。 (使用分离的存储库对象)

1 个答案:

答案 0 :(得分:10)

这非常依赖于关系的配置。见Entity Framework .Remove() vs. .DeleteObject()

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