2
我寫了一個相當簡單的代碼(基於WCF和Windows窗體的客戶端服務器)。我試圖更新數據庫,這樣我可以測試我的代碼和我得到一個異常:savechanges方法內的'System.Data.Entity.Infrastructure.DbUpdateException'
「System.Data.Entity.Infrastructure.DbUpdateException」發生在 EntityFramework.dll 任何想法如何解決它?
這裏是我的代碼:
public void updateTable()
{
using (var db = new overlayDBEntities())
{
var overlaydb = new overlayData
{
DeviceId = "1111",
TimestampUTC = new DateTime(2015, 1, 1, 1, 1, 1),
OverlayData1 = "eddy and budu"
};
db.overlayData.Add(overlaydb);
try
{
db.SaveChanges();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
var overlaydb1 = new overlayData
{
DeviceId = "1111",
TimestampUTC = new DateTime(2000, 2, 2, 10, 10, 10),
OverlayData1 = "dumm2sec dumm2sec "
};
db.overlayData.Add(overlaydb);
try
{
db.SaveChanges();
}
catch (Exception ec)
{
Console.WriteLine(ec.Message);
}
}
}
1.如果是異常的方法,你有一個以上的。 'SaveChanges'電話在這裏? 2.什麼是完整的異常信息? – DavidG
您應該調試您的代碼並查看InnerException,它會讓您更好地瞭解問題所在。我懷疑它可能是多個實體具有相同的ID(重複鍵) – benjrb
請注意,「overlaydb1」不會添加到db.overlayData。您正在添加「overlaydb」兩次。 – JoaoRibeiro