中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

從微軟的(de)DBML文件中(zhong)我們能學到什么(me)(它告訴了(le)我們什么(me)是微軟的(de)重中(zhong)之重)~六 LINQTOSQL中(zhong)為我們觸發了(le)SendPropertyChanging和SendPropertyChanged,它的(de)真正用(yong)意是什么(me)

一 DBContext的構造方法,方法的重載

二 DBContext實例中,表實體對象是怎么被加入的

三 分部類是否破壞了單一職責

四 分部方法從另一方面定義了類型的操作規范

五 LINQ實體類中對屬性的賦值,變化前與變化后SendPropertyChanging與SendPropertyChanged

六 LINQTOSQL中為我們觸發了SendPropertyChanging和SendPropertyChanged,它的真正用意是什么

七 為DBContext對象應該作為其它實體操作類型的基類,并為它提供統一的提交動作

 

 

 

接上(shang)一篇文章,談到了當(dang)屬性被修改時(shi),LINQ會幫助我們觸發兩個(ge)事件(jian),它們是:

public event PropertyChangingEventHandler PropertyChanging;

   public event PropertyChangedEventHandler PropertyChanged;
那它在實際的項目中是怎么去用的呢,下面我用最近我寫的一個項目來說一下它的用途:
實現功能:統一的更新,不使用linq to sql的更新,而使用T-SQL的update
實現思路:需要將要更新的字段和值進行整理,然后再找到要更新的實體真實表名,表主鍵
核心知識:PropertyChanging和PropertyChanged事件幫助我們收集要更新的字段
專業知識:MetaTable表示對真實數據表的抽象,可以根據實體對象得到真實數據表對象
 
核心代碼:
統一抽象基類:
 
具體實體對象,需要人為干預一下:
 
運行過程:當實體為加載后,自動訂閱一個PropertyChanged,指向的方法是基類的PropertyChangedEvent,它主要功能是記錄要修改的字段和被
修改的值,然后UI層去為新的實體對象賦值,提交到BLL(Service)或者DAL(DATA)(小項目可以不用BLL),去調用底層的統一修改的方法,即可。
 
本項目與其它項目不同的地方在于:把通過項目與實例項目分開
 
以后,直接引用 Entity.Commons項目就可以了,對于不同的項目有不同的Entity,這里Entity就叫實例項目,而如果你要作的項目只有一個數據庫,可能是前臺后臺子模塊項目等,那Entity層也可以是公用的,DATA層公用,只要重新設計Service層和UI層就可以了。
 
posted @ 2012-03-27 23:45  張占嶺  閱讀(1075)  評論(0)    收藏  舉報