一步一步学linqtosql8继承与关系

一步一步学linqtosql8继承与关系

ID:34729116

大小:147.76 KB

页数:15页

时间:2019-03-10

一步一步学linqtosql8继承与关系_第1页
一步一步学linqtosql8继承与关系_第2页
一步一步学linqtosql8继承与关系_第3页
一步一步学linqtosql8继承与关系_第4页
一步一步学linqtosql8继承与关系_第5页
资源描述:

《一步一步学linqtosql8继承与关系》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、论坛表结构为了演示继承与关系,我们创建一个论坛数据库,在数据库中创建三个表:1、 论坛版块分类表dbo.Categories:字段名字段类型可空备注CategoryIDintnotnullidentity/主键CategoryNamevarchar(50)notnull 2、 论坛版块表dbo.Boards:字段名字段类型可空备注BoardIDintnotnullidentity/主键BoardNamevarchar(50)notnull BoardCategoryintnotnull对应论坛版块分类表的Categ

2、oryID3、 论坛主题表dbo.Topics:字段名字段类型可空备注TopicIDintnotnullidentity/主键TopicTitlevarchar(50)notnull TopicContentvarchar(max)notnull ParentTopicintnull如果帖子是主题贴这个字段为null,否则就是所属主题idTopicTypetinyintnotnull0–主题贴1–回复帖实体继承的定义Linqtosql支持实体的单表继承,也就是基类和派生类都存储在一个表中。对于论坛来说,帖子有两种,

3、一种是主题贴,一种是回复帖。那么,我们就先定义帖子基类:[Table(Name="Topics")]publicclassTopic{[Column(Name="TopicID",DbType="intidentity",IsPrimaryKey=true,IsDbGenerated=true,CanBeNull=false)]publicintTopicID{get;set;} [Column(Name="TopicType",DbType="tinyint",CanBeNull=false)]publicint

4、TopicType{get;set;} [Column(Name="TopicTitle",DbType="varchar(50)",CanBeNull=false)]publicstringTopicTitle{get;set;} [Column(Name="TopicContent",DbType="varchar(max)",CanBeNull=false)]publicstringTopicContent{get;set;}}这些实体的定义大家应该很熟悉了。下面,我们再来定义两个实体继承帖子基类,分别是主题

5、贴和回复贴:publicclassNewTopic:Topic{publicNewTopic(){base.TopicType=0;}} publicclassReply:Topic{publicReply(){base.TopicType=1;} [Column(Name="ParentTopic",DbType="int",CanBeNull=false)]publicintParentTopic{get;set;}}对于主题贴,在数据库中的TopicType就保存为0,而对于回复贴就保存为1。回复贴还有一个相

6、关字段就是回复所属主题贴的TopicID。那么,我们怎么告知Linqtosql在TopicType为0的时候识别为NewTopic,而1则识别为Reply那?只需稍微修改一下前面的Topic实体定义:[Table(Name="Topics")][InheritanceMapping(Code=0,Type=typeof(NewTopic),IsDefault=true)][InheritanceMapping(Code=1,Type=typeof(Reply))]publicclassTopic{[Column(N

7、ame="TopicID",DbType="intidentity",IsPrimaryKey=true,IsDbGenerated=true,CanBeNull=false)]publicintTopicID{get;set;} [Column(Name="TopicType",DbType="tinyint",CanBeNull=false,IsDiscriminator=true)]publicintTopicType{get;set;} [Column(Name="TopicTitle",DbType="v

8、archar(50)",CanBeNull=false)]publicstringTopicTitle{get;set;} [Column(Name="TopicContent",DbType="varchar(max)",CanBeNull=false)]publicstringTopicContent{get;set;}}为类加了InheritanceM

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。