首页 > 代码库 > EF6 如何判断DataContext有修改,以及如何放弃修改
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
EF6 如何判断DataContext有修改,以及如何放弃修改
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。