0

我这里有这种情况。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; }
}

人员已经使用某些手机存储在数据库中。所以,假设我将编辑它的手机。目前的电话列表是:

编号:1 号码:1111

编号:2 编号:2222

编号:3 编号:3333

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

编号:1 编号:1212

编号:3 编号:3333

-

下面的命令将更新 Person 和已编辑的电话:

context.Person.Update(person)

但是被删除的手机呢?我必须比较当前列表和编辑列表,以确定哪些手机被删除以执行类似的操作

context.Phone.Delete(phone)

我的问题是:没有更自动的吗?Entity 无法检测到哪些手机被删除?

谢!

4

1 回答 1

0

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

于 2013-06-14T15:10:51.767 回答