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

Jor*_*uns 4 c# linq-to-entities entity-framework-4

我有一个名为'target'的模型,由具有集合地址的entityframework进行检索.

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

但是,在检查我的数据库时,记录仍然存在.虽然我的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);
}    
Run Code Online (Sandbox Code Playgroud)

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

解决了 我现在直接从上下文中删除它.(使用单独的存储库对象)

Dan*_*anS 10

这非常依赖于关系的配置.请参阅实体框架.Remove()与.DeleteObject()

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