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

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

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

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

我想了解如何學(xué)習(xí)

姓名:
手機(jī):
留言: