避免循环依赖:MySQL / Entity Framework

时间:2011-09-07 10:24:19

标签: mysql circular-dependency

我们在处理循环依赖时遇到问题,并想知道是否有人可以提出解决方案。如果我们要删除客户端,实体框架拒绝这样做,因为它告诉我们外键约束失败。我们的表格设置如下:

ClientAccounts

Id [PK]
Forenames
Surname
DefaultEmailId [FK, NULLABLE]

ClientEmailAddresses

Id [PK]
Description
EmailAddress
ClientId [FK, NON-NULLABLE]

因此,客户可以将零或多个电子邮件地址与其帐户相关联。其中一个是他们的默认联系电子邮件地址。

我认识到,如果我们允许ClientEmailAddresses表具有null ClientId,那么它可以正常工作;但我们不希望出现可能有孤儿电子邮件记录的情况。

2 个答案:

答案 0 :(得分:1)

也许最好在表ClientEmailAddresses中存储字段'default',并从表ClientAccounts中删除DefaultEmailId。我不知道你的代码结构,但有时像你的结构是多余的。

答案 1 :(得分:0)

您不应该先删除 ClientEmailAddresses 中的条目吗?

想象一下这样的存储过程:

##  delete Client
delete from ClientEmailAddresses where ClientId = ID2delete
delete from ClientAccounts where Id = ID2delete

其中Id2delete是要删除的客户端ID。

我没试过,但应该工作!