从微软的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文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~四 分部方法从另一方面定义了类型的操作规范...相关推荐
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~三 分部类是否破坏了单一职责...
一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~二 DBContext实例中,表实体对象是怎么被加入的...
一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...
- ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数、运输次数、三种不同的车型,预测需要花费的小时数)来预测一个自变量
ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数.运输次数.三种不同的车型,预测需要花费的小时数)来预测一个自变量 输出结果 代码设计 from nu ...
- 从three.js的字体文件中提取部分字符
three.js的中文字体文件很大,以微软雅黑为例,有26M. 如果程序中只用到了部分汉字,那么可以瘦身一下,只保留自己需要的汉字. three.js的字体文件格式是这样的: module.expor ...
- linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...
- 分部类和方法的学习以及在LINQ中的应用(原创)
可以将 类或 结构. 接口或方法的定义拆分到两个或多个源文件中. 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来. 分部类 在以下几种情况下需要拆分类定义: 处理大型项目时, ...
- PHP将excel文件中的数据批量导入到数据库中
2019独角兽企业重金招聘Python工程师标准>>> 这几天在做项目时,遇到了需要批量导入数据的情况,用户将excel表格提交后,需要我们后台这边将excel表格信息中的内容全部插 ...
- DLINQ *.dbml文件该属于哪一层
今天尝试用.Net3.5架构网站,发现一个问题,使用LINQ操作数据库,LINQ操作属哪层呢? 假如光使用一种数据库,那么把LINQ放在数据层是没有问题,然后再对LINQ数据进行包装,就可以使用了.但 ...
- Dbml文件提取建表TSql-CodeSmith
在昨天一个大学师弟,他问我能不能将LinqToSql文件转化为创建表的TSql语句,他是刚开始学习.NET,所以在网上下些示例看,但苦于没有数据库.所以就有了这一篇博客,作为我的Code生成技术的Co ...
最新文章
- 看漫画学python 豆瓣_漫画,小莉要学Python后端,看大牛是怎么教她的!
- 独家 | 2种数据科学编程中的思维模式,了解一下(附代码)
- 全球缺芯+瑞萨火灾——网络营销之下一众车企减产的减产,停产的停产
- 印度18岁天才少年,造出“全球最小卫星”,实力不容小觑!
- 手把手教你做产品经理1.0
- 【缅怀妈妈系列诗歌】之八:妈妈,我不会忘记
- 二叉树的所有路径(LeetCode 257)
- 二元函数可导与可微的关系_视频教学:期末试卷解析之多元函数基本概念及相互关系讨论...
- 远程连接linux主机_Linux远程桌面连接Windows
- 互联网最强的下载工具:IDM
- DOSBOX怎么使用 从编译到连接到执行操作全过程 + debug
- 数字经济进入2.0时代 浙里有为共赢新“基”遇
- svn提示没有设置冲突_SVN冲突解决方法大全
- 服务器用户名 administrator 修改,windows2003中Administrator用户名与密码修改图解Windows服务器操作系统 -电脑资料...
- 几个设计原则的优先级排序
- 【mysql】mysql查询结果添加固定值
- 《视觉SLAM十四讲》学习笔记:第5讲相机与图像
- 7PTA7-6 结伴同行去秋游
- Lnux-组-用户管理
- 爱奇艺qsv格式视频无损转换为MP4