讓說我有11,000多個客戶列表中的「customersFromFile」和8000個客戶DBC#實體框架插入,而不是更新
與下面的代碼,我希望EF將更新現有的8000個客戶數據庫,並加上3000離開DB
控制檯與正確打印「更新客戶:8000」和「添加到客戶:3000
然而,在DB我現在共有19000個客戶雖然現有的8000已成功更新
請幫我解決這個問題。
DEMOEntities context = new DEMOEntities();
context.Configuration.AutoDetectChangesEnabled = false;
context.Configuration.ValidateOnSaveEnabled = false;
int i = 0;
foreach (var customerInDB in context.Customers)
{
//Console.WriteLine("Update customer: " + customerInDB.CustomerID.ToString());
customerInDB.Name = customersFromFile[i].Name;
customerInDB.CIC = customersFromFile[i].CIC;
customerInDB.IndustryCode = customersFromFile[i].IndustryCode;
context.Entry(customerInDB).State = EntityState.Modified;
i++;
}
Console.WriteLine("Updated customers: " + i.ToString());
int j = 0;
for (; i < customersFromFile.Count; i++)
{
context.Customers.Add(customersFromFile[i]);
j++;
}
Console.WriteLine("Added to customer:" + j.ToString());
Console.WriteLine("Saving changes to customer...");
context.SaveChanges();
更新2:感謝TomTom公司的這個答案,我的錯誤添加客戶背景時,我形成了CustomerFromFile列表。我花了時間,發現這個:(
啊,對不起,這個問題在哪裏?它不是因爲它需要添加,而是因爲你添加。 ,進行更新 – TomTom