zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    浅谈过拟合问题与梯度爆炸问题
    python 读取excel数据
    KNN与K-MEANS的区别
    jstree使用小结(二)
    jstree使用小结(一)
    webstrom 编码
    自定义分页
    js传递数组到后台
    创建等待图标
    js 日期格式化
  • 原文地址:https://www.cnblogs.com/HQFZ/p/4159100.html
Copyright © 2011-2022 走看看