【发布时间】:2012-12-19 15:20:33
【问题描述】:
我在联系人和电话之间有一个一对多的单向关系,定义如下:
class Contact {
int ContactId {get; set}
ICollection<Phone> Phones {get; set}
}
class Phone {
int PhoneId {get; set;}
string PhoneNumber {get; set;}
}
现在在域层,我尝试执行以下操作:
someContact.Phones.Remove(somePhone);
当我尝试拨打context.SaveChanges() 时,我得到一个异常,因为该关系被定义为必需(例如,没有联系人就不能存在电话)。
如何在不使用外键或 Phone 中的导航属性且无需在调用 SaveChanges() 之前调用 DbSet<Phone>.Remove(Phone) 的情况下解决此问题?
【问题讨论】:
-
你不能只添加一个
RemovePhone()-方法到联系人吗?如果史密斯先生和史密斯夫人都在您的数据库中使用同一部手机,并且只有史密斯先生删除了他的帐户,您希望发生什么? -
您希望将手机从数据库中删除还是从联系人中取消链接?如果您不定义手机与联系人之间的关系,EF 应该如何知道应该删除手机?
标签: c# .net entity-framework ado.net ef-code-first