我在這個鏈接上使用了公認的解決方案來解決與 OP 類似的問題。在保存和從背景關系中洗掉之前驗證物體
在 Entity Framewok 6 中,我得到 System.InvalidOperationException: '物體型別 DbEntityEntry 不是當前背景關系模型的一部分。'
我該如何解決這個問題?我的初始設定中是否必須包含某些內容?
我的代碼看起來像這樣
Console.WriteLine("Removing Bad Records");
foreach (var error in context.GetValidationErrors())
{
context.Entry(error.Entry).State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
uj5u.com熱心網友回復:
context.Entry( Object )回傳DbEntityEntry<>指定物體物件的物件。error.Entry已經是一個DbEntityEntry<>物件。它不是物體物件。
因此,將您的代碼更改為此(State在您的 上設定error.Entry):
Console.WriteLine("Removing Bad Records");
foreach( var error in context.GetValidationErrors() )
{
error.Entry.State = EntityState.Detached;
}
Console.WriteLine("Saving Changes");
context.SaveChanges();
...或者這個(將實際的物體物件傳遞給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();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/390087.html
