我们在处理循环依赖时遇到问题,并想知道是否有人可以提出解决方案。如果我们要删除客户端,实体框架拒绝这样做,因为它告诉我们外键约束失败。我们的表格设置如下:
ClientAccounts
Id [PK]
Forenames
Surname
DefaultEmailId [FK, NULLABLE]
ClientEmailAddresses
Id [PK]
Description
EmailAddress
ClientId [FK, NON-NULLABLE]
因此,客户可以将零或多个电子邮件地址与其帐户相关联。其中一个是他们的默认联系电子邮件地址。
我认识到,如果我们允许ClientEmailAddresses表具有null ClientId,那么它可以正常工作;但我们不希望出现可能有孤儿电子邮件记录的情况。
答案 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。
我没试过,但应该工作!