<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      EF的 NoTracking 的一些記錄

      NoTracking官方解釋

      跟蹤與非跟蹤查詢

      跟蹤行為可控制 Entity Framework Core 是否將有關實體實例的信息保留在其更改跟蹤器中。 如果已跟蹤某個實體,則該實體中檢測到的任何更改都會在 SaveChanges() 期間永久保存到數據庫。Entity Framework Core 還會修正從跟蹤查詢中獲取的實體與先前已加載到 DbContext 實例中的實體兩者之間的導航屬性。 

        

      可以理解為:

      DbContext如果配置為TrackAll。

      則DbContext會跟蹤返回的實體實例,記錄增刪改查的跟蹤記錄,并自動整合變化,推送Diff Change保留至數據庫。

      DbContext如果配置為NoTracking。

      則DBContext不會跟蹤實體變化(不再自動標記實體變化,但手動標記仍有效),并不自動修正變化。

       

      1.對增刪改查的影響

      NoTracking  不允許 相同的實體被標記多次

      也就是 Attach 的實體必須有不同的標記。

      但TrackAll不會有此問題,因為會自動修正2個實體標記

      2.查詢緩存

      public void Test()
              {
                  var id = st.T_User.Select(o => o.ID).FirstOrDefault();
      
                  using (FLFPermissionEntities ent = dbr.CreateContext<FLFPermissionEntities>())
                  {
                      using (FLFPermissionEntities sub1 = new FLFPermissionEntities())
                      {
                          var jm = sub1.FlexUpdate<T_User>(o => o.Name = "lcc", o => o.ID == id);
                          if (jm.HasMsg())
                              Assert.Fail(jm.msg);
                      }
      
                      var user21 = ent.T_User.FirstOrDefault(o => o.ID == id);
      
                      Console.WriteLine($"TrackAllDBContext 第一次讀取:{user21.Name}");
      
                      using (FLFPermissionEntities sub2 = new FLFPermissionEntities())
                      {
                          Console.WriteLine($"改變Name的值為lcc2");
                          var jm = sub2.FlexUpdate<T_User>(o => o.Name = "lcc2", o => o.ID == id);
                          if (jm.HasMsg())
                              Assert.Fail(jm.msg);
                      }
      
                      var user22 = ent.T_User.FirstOrDefault(o => o.ID == id);
                      Console.WriteLine($"TrackAllDBContext 第二次讀取:{user22.Name}");
                  }
      
                  using (FLFPermissionEntities ent = dbr.CreateReadContext<FLFPermissionEntities>())
                  {
                      using (FLFPermissionEntities sub1 = new FLFPermissionEntities())
                      {
                          var jm = sub1.FlexUpdate<T_User>(o => o.Name = "lcc", o => o.ID == id);
                          if (jm.HasMsg())
                              Assert.Fail(jm.msg);
                      }
      
      
                      var user21 = ent.T_User.FirstOrDefault(o => o.ID == id);
      
                      Console.WriteLine($"NoTrackDBContext 第一次讀取:{user21.Name}");
      
                      using (FLFPermissionEntities sub2 = new FLFPermissionEntities())
                      {
                          Console.WriteLine($"改變Name的值為lcc2");
                          var jm = sub2.FlexUpdate<T_User>(o => o.Name = "lcc2", o => o.ID == id);
                          if (jm.HasMsg())
                              Assert.Fail(jm.msg);
                      }
      
                      var user22 = ent.T_User.FirstOrDefault(o => o.ID == id);
                      Console.WriteLine($"NoTrackDBContext 第二次讀取:{user22.Name}");
      
      
                  }
              }

       

      NoTrack的結果是正確的,TrackAll的結果與實際結果不同

      會發現 TrackAll的 2次查詢 結果是一樣的,而且TrackAll的第二次讀取時已經訪問了數據,但出來的結果 還是lcc  并不是lcc2。

      所以TrackAll 會從數據庫讀取數據后,根據跟蹤記錄里的數據信息,覆蓋數據庫中讀取的結果

       

       DbContext 認為 跟蹤記錄的數據必須統一且數據已跟蹤記錄為準

      posted @ 2019-05-24 15:16  Shikyoh  閱讀(1139)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人精品中文字幕| 亚洲日本一区二区三区在线播放| 一区二区三区四区自拍视频| 露脸国产精品自产拍在线观看 | 亚洲国产欧美在线看片一国产| 国产熟女老阿姨毛片看爽爽| 特级做a爰片毛片免费看无码| 国产一区二区三区黄色片 | 久久久久久性高| 国产成人综合色在线观看网站| 亚洲二区中文字幕在线| 中文字幕日韩有码av| 国产成人高清亚洲综合| 巨胸美乳无码人妻视频漫画 | 男人扒开添女人下部免费视频| www亚洲精品| 东京热无码国产精品| 国产精品国产高清国产一区| 国产乱子伦一区二区三区四区五区| 九九热在线免费视频精品| 欧洲一区二区中文字幕| 山东省| 亚洲区激情区无码区日韩区| 影音先锋女人AA鲁色资源| 伊人久久大香线蕉AV网| 中文字幕av国产精品| 青青青爽在线视频观看| 国产亚洲精品成人无码精品网站| 伊人久久大香线蕉网av| 深夜福利成人免费在线观看| 狠狠躁日日躁夜夜躁欧美老妇 | 国产成人精品一区二三区| 久久亚洲精品中文字幕馆| 亚洲の无码国产の无码步美| 久久中文字幕国产精品| 香蕉亚洲欧洲在线一区| 国产欧美日韩精品丝袜高跟鞋| 一区二区精品久久蜜精品| 亚洲色成人网站www永久| 呦系列视频一区二区三区| 国产高清自产拍av在线|