EF6 如何判断DataContext有修改,以及如何放弃修改
?
如何判斷DataContext有修改:
EF6的
using (var db = new Model1()) {if (db.ChangeTracker.HasChanges()){Console.WriteLine("Something has changed");} }?
EF5中:
public bool HasUnsavedChanges(){return this.ChangeTracker.Entries().Any(e => e.State == EntityState.Added|| e.State == EntityState.Modified|| e.State == EntityState.Deleted);}?
?
EF4中為:
?
public Boolean HasUnsavedChanges(){return (this.ObjectContext().ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted).Any());}?
DataContext如何放棄修改的建議:
this is not supposed way to use context. Context is unit of work - do changes you really want to do and then save them. If you find that you don't want to save changes dispose the context and create a new one. The best practice is using context for one single logical operation. Sharing context or using static context is a bad practice and because of that there is no build in method to "reset" context - you must do it yourselves by exploring ObjectStateManager and reverting all changes (it can be quite complex task).
?
?
參考
Entity Framework 5 - DbContext Has Changes
Entity Framework 6.1 is context dirty
轉(zhuǎn)載于:https://www.cnblogs.com/HQFZ/p/4159100.html
總結(jié)
以上是生活随笔為你收集整理的EF6 如何判断DataContext有修改,以及如何放弃修改的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 计算机网络第1章(概述)
- 下一篇: 计算机网络第2章(物理层)
