当实体框架抛出错误(即不遵守最大长度)时,对 SaveChanges()的每次调用都会生成旧的错误消息,不允许正确执行新的sql查询。
每个用户都被触及,需要重新加载应用程序!
我想念什么?
这里有一些代码:
Society _new = new Society ()
{
Nom = "TEST TEST TEST TEST TEST", // MAX LENGTH 10
Adresse = "45, rue Paris",
....
};
try
{
context.Society.Add(_new);
context.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
{
//handle error
}
catch (Exception e)
{
//handle error
}
错误发生后,我每次调用 context.SaveChanges(); (即使对于其他对象)实体也会生成相同的错误,就像上下文被卡住一样。
答案 0 :(得分:0)
可能是因为你在捕获错误后向上下文和事件添加了不正确的对象,这个对象仍然在上下文中,所以在下一次调用SaveChanges()时也会出现错误
答案 1 :(得分:0)
错误是由于我总是使用相同的DbContext。
以这种方式(因此,从不调用方法 .Dispose())错误阻止了我使用的唯一上下文。
服务方法必须在整个过程中使用相同的DbContext实例 业务交易的持续时间。这是所有的变化 对您的持久模型进行跟踪并将其提交到 底层数据存储或以原子方式回滚。