我有这种情况。 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)
我的问题是:有没有更自动的东西?无法实体检测哪些手机被删除了?
韩国社交协会!
答案 0 :(得分:0)
同一个Phone
实体可能属于多个人。 EF并不一定知道这一点,因为在大多数情况下,并非所有Person
实体都将从数据库中下载。因此,盲目删除Phone
实体可能会影响不应触及的关系/实体。如果您要删除相关实体并一次更新关系,则可以在Delete
实体上尝试Phone
,我认为您无需在Update
上调用{{1}}另一个实体。