實體類創(chuàng)建后在方法中對哪些屬性賦值了,傳遞到底層方法時在底層如何得知哪些屬性被賦值過。如何監(jiān)控屬性的更改,請看腦洞大開之《大花貓動了哪些小玩具》——記屬性監(jiān)控之曲線救國。

  在使用EF更新數(shù)據(jù)庫實體時。很多時候我們想要的只是更新表中的某一個或部分字段。雖然可以通過設置來告訴上下文我們要更新的字段。但是一般我們都會把數(shù)據(jù)持久層封裝起來。通過泛型操作。而這時我們就無法得知應用層面修改了哪些字段了。

  最近也在學習EF,就正好遇到了這個問題。當然,如果直接在應用層面使用,通過設置字段的IsModified狀態(tài)就可以了。如下
  db.Entry(model).Property(x => x.Token).IsModified = false;
  可是,這僅限于學習和demo。正式開發(fā)中一般是不會把這種底層操作公開給應用層面的。都會把數(shù)據(jù)庫持久層進行封裝。然后通過實體工廠(倉庫)加實體泛型的方式提供增刪改查。
  具體的可以參考《基于Entity Framework的Repository模式設計》之類的文章。
  這類方式都有一個共同點,更新和刪除的時候都有如下類似代碼:

網(wǎng)友評論

        <track id="rbtvn"></track>