天天看點

從微軟的DBML檔案中我們能學到什麼(它告訴了我們什麼是微軟的重中之重)~五 LINQ實體類中對屬性的指派,變化前與變化後SendPropertyChanging與SendPropertyChanged

首先從這一篇的文章标題中可以看出,主要是講dbml中對實體的屬性指派的相關知識,還有SendPropertyChanging與SendPropertyChanged這兩個方法,從第五講和第六講中我們看到标題有些雷同,是的,但我講它們的側重點不同,第五講主要講實體中屬性指派的過程,此時會用到SendPropertyChanging與SendPropertyChanged這兩個方法,而第六講,主要是講這兩個方法的作用,先透露一下,主要講事件觸發機制的,呵呵。

這是一種其中的dbml實體類中的代碼片段,它主要是為ExceptionID這個屬性指派,get部分沒什麼說的,已經傳回這個_ExceptionID字段的值,主要看set部分,它的工作流程是:

1 判斷_ExceptionID變量是否等于原來的值

2 如果不等,調用OnExceptionIDChanging方法,表示開始修改這字段,它是一個分部方法,可以由開發人員根據自己的邏輯去實作它

3 調用屬性将要被修改方法SendPropertyChanging

4 對字段進行指派

5 調用屬性已經被修改方法SendPropertyChanged,并告訴方法修改的字段為“ExceptionID”

6 OnExceptionIDChanged,表示這個字段已經修改完成

我們主要看一下SendPropertyChanging和SendPropertyChanged

這兩個方法是派生自INotifyPropertyChanging和INotifyPropertyChanged這兩個接口的,主要作用是通知用戶端某個屬性将要被修改和已經被修改,在這兩個

方法體中,事實上是實作了觸以下兩個事件的作用

也就是說,隻要屬性被修改,那麼這兩個事實将被觸發,那linqtosql為我們提供這個功能有什麼作用呢?請看下回。

繼續閱讀