从更新列表中删除项目

时间:2013-06-14 13:44:51

标签: entity-framework

我有这种情况。 2个班级

    public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }

    public List<Phone> Phones { get; set; }

}

public class Phone
{
    public int id { get; set; }
    public int Number { get; set; }
}

人员已经存储在一些手机的数据库中。所以,让我们说我会编辑它的手机。 目前的电话列表是:

  

Id:1号码:1111

     

Id:2号码:2222

     

Id:3号码:3333

当我编辑列表时,我删除了第二行并更新了第一行。现在,列表是:

  

Id:1号码:1212

     

Id:3号码:3333

-

以下命令将更新人员和已编辑的电话:

context.Person.Update(person)

但删除的手机怎么样?我将不得不比较当前和编辑的列表,以确定哪些手机被删除以执行类似

的操作
context.Phone.Delete(phone)

我的问题是:有没有更自动的东西?无法实体检测哪些手机被删除了?

韩国社交协会!

1 个答案:

答案 0 :(得分:0)

同一个Phone实体可能属于多个人。 EF并不一定知道这一点,因为在大多数情况下,并非所有Person实体都将从数据库中下载。因此,盲目删除Phone实体可能会影响不应触及的关系/实体。如果您要删除相关实体并一次更新关系,则可以在Delete实体上尝试Phone,我认为您无需在Update上调用{{1}}另一个实体。