从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~四 分部方法从另一方面定义了类型的操作规范...
一 DBContext的構造方法,方法的重載
二 DBContext實例中,表實體對象是怎么被加入的
三 分部類是否破壞了單一職責
四 分部方法從另一方面定義了類型的操作規范
五 LINQ實體類中對屬性的賦值,變化前與變化后SendPropertyChanging與SendPropertyChanged
六 LINQTOSQL中為我們觸發了SendPropertyChanging和SendPropertyChanged,它的真正用意是什么
七 為DBContext對象應該作為其它實體操作類型的基類,并為它提供統一的提交動作
分部方法,partial method,它要求必須定義在分部類里,上一文章已經說過分部類,相信各位已經以它有了一個認識了,今天主要說分部方法,分部方法主要是為了以后有可能要實現某個功能,而為這個功能定義的方法,這在linq to sql的DBML文件中表現的很突出,看代碼:
public partial class Category : INotifyPropertyChanging, INotifyPropertyChanged{private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);private int _ID;private string _Name;private int _ParentID;#region 可擴展性方法定義 partial void OnLoaded();partial void OnValidate(System.Data.Linq.ChangeAction action);partial void OnCreated();partial void OnIDChanging(int value);partial void OnIDChanged();partial void OnNameChanging(string value);partial void OnNameChanged();partial void OnParentIDChanging(int value);partial void OnParentIDChanged();#endregion public Category(){OnCreated();} } 我們看到微軟為一個linq實體添加自動添加了幾個分部方法,但并沒有去實現它,在我們開始程序時,可以在它進行實現,但會引用一些方法,如OnCreated方法,而我們在Category 分部類 中可以為OnCreated方法進行實現,從而達到當建立實體實例時,執行我們的代碼。分部方法從另一方面定義了類型的操作規范,這句話是今天的主題,從上面的代碼中可以看到,事實也是這樣,分部方法標注了類可以包括的行為,并把這些行為進行調用,而行為主體可以由開發者自己去確定,怎么樣,很靈活吧!
看一下在我的項目中是如何使用分部方法的,它實現了每次實例化對象時,自動執行方法體里的代碼的功能,本代碼段的功能是為實體訂閱一個列修改的事件。 public class UserBases_Ext : UserBases { }public partial class UserBases : EntityBase{protected override object[] PrimaryKey{get { return new object[] { this.UserID }; }}/// <summary>/// 實體初始化時自動執行,在linqtosql的源文件里有定義 /// </summary>partial void OnLoaded(){if (this.IsValid)//實體是否驗證通過 {base.Initialization();//基類的某些屬性初始化 this.PropertyChanged += new PropertyChangedEventHandler(base.PropertyChangedEvent);//初始實體時,先訂閱列修改的事件}
本文轉自博客園張占嶺(倉儲大叔)的博客,原文鏈接:從微軟的DBML文件中我們能學到什么(它告訴了我們什么是微軟的重中之重)~四 分部方法從另一方面定義了類型的操作規范,如需轉載請自行聯系原博主。
總結
以上是生活随笔為你收集整理的从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~四 分部方法从另一方面定义了类型的操作规范...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朋友圈超短好句摘抄212个
- 下一篇: 非常搞笑的说说大全适合发朋友圈198个