在 EF6 中保存之前丢弃无效实体
Discard invalid entities before save in EF6
我在此 link 中使用了可接受的解决方案
与OP类似的问题。
在 Entity Framewok 6 中,我得到 System.InvalidOperationException:'The entity type DbEntityEntry is not part of the model for the current context.'
我该如何解决这个问题?我的初始设置中是否必须包含某些内容?
我的代码是这样的
Console.WriteLine("Removing Bad Records");
foreach (var error in context.GetValidationErrors())
{
context.Entry(error.Entry).State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
context.Entry( Object )
returns 指定 entity 对象的 DbEntityEntry<>
对象。
error.Entry
已经是一个DbEntityEntry<>
对象。它不是 实体 对象。
因此将您的代码更改为(在 error.Entry
上设置 State
):
Console.WriteLine("Removing Bad Records");
foreach( var error in context.GetValidationErrors() )
{
error.Entry.State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
...或者这个(将实际的 entity 对象传递给 dbContext.Entry(Object)
):
Console.WriteLine("Removing Bad Records");
foreach( var error in context.GetValidationErrors() )
{
var entity = error.Entry.Entity;
context.Entry( entity ).State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
我在此 link 中使用了可接受的解决方案
与OP类似的问题。
在 Entity Framewok 6 中,我得到 System.InvalidOperationException:'The entity type DbEntityEntry is not part of the model for the current context.'
我该如何解决这个问题?我的初始设置中是否必须包含某些内容?
我的代码是这样的
Console.WriteLine("Removing Bad Records");
foreach (var error in context.GetValidationErrors())
{
context.Entry(error.Entry).State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
context.Entry( Object )
returns 指定 entity 对象的DbEntityEntry<>
对象。error.Entry
已经是一个DbEntityEntry<>
对象。它不是 实体 对象。
因此将您的代码更改为(在 error.Entry
上设置 State
):
Console.WriteLine("Removing Bad Records");
foreach( var error in context.GetValidationErrors() )
{
error.Entry.State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
...或者这个(将实际的 entity 对象传递给 dbContext.Entry(Object)
):
Console.WriteLine("Removing Bad Records");
foreach( var error in context.GetValidationErrors() )
{
var entity = error.Entry.Entity;
context.Entry( entity ).State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();