我有这个域:
public class Phone {
public int Id { get; set; }
public string Number { get; set; }
public Person Person { get; set; }
}
public class Person {
public int Id { get; set; }
public IList<Phone> Phones { get; set; }
}
我加载Person
并清除它的Phones
. 但是操作会报错:
// actually loads person from repository...
var person = _personRepository.Include(p => p.Phones).Where(p => p.Id == 1).First();
person.Phones.Clear();
_personRepository.Update(person);
上面你可以看到加载 aPerson
和清除它的简单逻辑Phones
。但是会出现这个错误:
操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。
实际上我想清除所有Person.Phones
并添加一些新项目。但我想在一个查询中清除它们,而不是一一删除。
你有什么想法吗?你能帮我吗?提前致谢。