[英]Entity Framework foreign key issues when inserting multiple records?
我們遇到了一個問題,當我們提交要添加到數據庫的幾個對象的列表時,我們會收到與外鍵相關的錯誤...
using (context ctx = new context()
{
foreach(foo f in bars)
{
ctx.AddToFoo(f);
}
ctx.SaveChanges();
}
該錯誤表示插入語句與外鍵約束沖突,但是如果我將SaveChanges()
移動到foreach
循環內,它可以正常工作,但似乎會慢得多......
我會將它卷入BulkCopy
類,但我們有一堆與SaveChanges
相關的日志記錄代碼。
編輯:這里是鏈接到異常Linky的圖片的鏈接
看起來SaveChanges
不會按照在AddToFoo
中添加的相同順序保存每個 foo 。
我不知道為什么它會在 for 循環中工作。 如果循環外有異常,那么它也應該在內部給出異常。
您應該對異常中列出的外鍵約束進行故障排除。 因此,如果約束是“FK_Foo_Parent”,那么您首先需要有一個 Foo 項目引用的 Parent 項目。
您的代碼應如下所示:
using (context ctx = new context())
{
ctx.AddToParents(parent);
foreach (foo f in bars)
{
parent.Foos.Add(f);
ctx.AddToFoos(f);
}
ctx.SaveChanges();
}
這將設置新 foo 記錄與其父記錄之間的外鍵引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.