我正在使用'in database'循环链接列表(cll)。我正在使用Linq到Sql插入形成这些cll的数据库条目。
他们有一般形式:
id uuid | nextId uuid | current bit
如果我尝试使用一些对象形成一个完整的cll来执行SubmitChanges,我会收到错误“在一组更改中检测到一个循环”。
我可以通过在单独的SubmitChanges中使链表'循环'来避免这种情况,但这有两个缺点:我失去了在一次交易中执行此操作的能力。在一小段时间内,我的数据库中的数据不正确。
有没有办法解决这种问题?
答案 0 :(得分:2)
数据库需要强制执行其约束,我想你在nextId
和Id
之间有一个外键约束。如果这种关系链回到起点(正如你所发现的那样),数据库将不会允许它。
我怀疑你的选择是:
即使您的第二个选项也不起作用,因为数据库不允许您添加此最后一个引用。