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