【发布时间】:2011-08-23 20:27:23
【问题描述】:
我正在尝试通过实体框架(MySQL/连接器)删除具有外键关系的对象。
ClientAccount >>> ClientEmailAddresses
foreach (ClientAccount client in recsClientStore.Deleted) {
ClientAccount stub = new ClientAccount();
stub.Id = client.Id;
this.DBContext.AttachTo("ClientAccounts", stub);
stub.FkClientEmailAddresses.Clear();
this.DBContext.DeleteObject(stub);
}
this.DBContext.SaveChanges();
.. 但是当我这样做时,我收到以下错误:
操作失败:无法更改关系,因为 一个或多个外键属性不可为空。当一个 对关系进行更改,相关的外键属性是 设置为空值。如果外键不支持空值, 必须定义一个新的关系,外键属性必须是 分配了另一个非空值,或者不相关的对象必须是 已删除。
我不确定这会把我留在哪里。我必须先删除 EmailAddress 对象吗?我们对打开级联持谨慎态度,但它看起来越来越像整理外键所必需的。
【问题讨论】:
标签: mysql entity-framework cascading-deletes