gpt4 book ai didi

c# - Entity Framework 5 InvalidOperationException 重新加载

转载 作者:太空狗 更新时间:2023-10-29 21:54:36 30 4
gpt4 key购买 nike

我尝试使用重新加载功能放弃一些更改。我得到一个 InvalidOperationException。我怎样才能防止这种情况发生?

DbContext.SaveChanges();
//Entity is in Unchanged state
//Make some changes to an entity
//Change state to modified
DbContext.Entry(entity).Reload();

InvalidOperationException
EntityMemberChanged or EntityComplexMemberChanged was called without first calling EntityMemberChanging or EntityComplexMemberChanging on the same change tracker with the same property name. For information about properly reporting changes, see the Entity Framework documentation.

编辑:
我已经启用和禁用了 ProxyCreationEnabledLazyLoadingEnabled
也尝试了不同的方法。所有这些尝试都会抛出相同的异常。

var objContext = ((IObjectContextAdapter)context).ObjectContext;
objContext.Refresh(RefreshMode.ClientWins, entry.Entity);


entry.OriginalValues.SetValues(entry.GetDatabaseValues());

希望我能得到解决方案。不想处理完整的 DbContext 以重新加载所有数据。

最佳答案

引用this MSDN thread / post

“值得注意的是,无论您是通过代理类使用更改跟踪还是显式调用 entitymemberchanged,都会显示该错误。每当我执行 entitymemberchanging 并在创建objectcontext/objectstatemanager,无论我是同步还是异步执行这两个函数,使用锁或让线程显式休眠。我发现这是 objectstatemanager 的某种“真正的错误”,而不是什么东西是一个简单的解决方法。球在你的球场上,MSFT。”

附言评论时间太长。

关于c# - Entity Framework 5 InvalidOperationException 重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569914/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com