c# - 从集合 Entity Framework 中删除项目

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

我有一个名为“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/

相关文章:

ASP.NET MVC 3、Entity Framework 4。更新与许多相关的实体

c# - Linq to Entities,随机顺序

c# - 如何在 LINQ to entities 中使用 Date 函数?

c# - 使用 bool 值绑定(bind)文本 block 的可见性不起作用

c# - 如何合成两个图像(使用 Source In 合成)?

c# - LINQ 执行多个查询而不是单个 "joined"查询

c# - C# 中的图像处理

asp.net-mvc-3 - 我的模型应该如何将动态添加的文本框的数据存储在数据库中?

entity-framework-4 - Entity Framework 中的多个SaveChanges调用

entity-framework-4 - 如何将 Entity Framework 中的 DbSet 转换为 ObjectQuery