成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linq實體繼承簡單描述

開發 后端
這里介紹Linq實體繼承的定義,Linq to sql支持實體的單表繼承,也就是基類和派生類都存儲在一個表中。對于論壇來說,帖子有兩種,一種是主題貼,一種是回復帖。

Linq有很多值得學習的地方,這里我們主要介紹Linq實體繼承的定義,包括介紹Linq to sql支持實體的單表繼承等方面。

Linq實體繼承的定義

Linq to sql支持實體的單表繼承,也就是基類和派生類都存儲在一個表中。對于論壇來說,帖子有兩種,一種是主題貼,一種是回復帖。那么,我們就先定義帖子基類:

  1. [Table(Name = "Topics")]  
  2. public class Topic  
  3. {  
  4. [Column(Name = "TopicID"DbType = "int identity"IsPrimaryKey = true
    IsDbGenerated = trueCanBeNull = false)]  
  5. public int TopicID { get; set; }  
  6. [Column(Name = "TopicType"DbType = "tinyint"CanBeNull = false)]  
  7. public int TopicType { get; set; }  
  8. [Column(Name = "TopicTitle"DbType = "varchar(50)"CanBeNull = false)]  
  9. public string TopicTitle { get; set; }  
  10. [Column(Name = "TopicContent"DbType = "varchar(max)"CanBeNull = false)]  
  11. public string TopicContent { get; set; }  

這些Linq實體繼承的定義大家應該很熟悉了。下面,我們再來定義兩個Linq實體繼承帖子基類,分別是主題貼和回復貼:

  1. public class NewTopic : Topic  
  2. {  
  3. public NewTopic()  
  4. {  
  5. base.TopicType = 0;  
  6. }  
  7. }  
  8. public class Reply : Topic  
  9. {  
  10. public Reply()  
  11. {  
  12. base.TopicType = 1;  
  13. }  
  14. [Column(Name = "ParentTopic"DbType = "int"CanBeNull = false)]  
  15. public int ParentTopic { get; set; }  

對于主題貼,在數據庫中的TopicType就保存為0,而對于回復貼就保存為1。回復貼還有一個相關字段就是回復所屬主題貼的TopicID。那么,我們怎么告知Linq to sql在TopicType為0的時候識別為NewTopic,而1則識別為Reply那?只需稍微修改一下前面的Topic實體定義:

  1. [Table(Name = "Topics")]  
  2. [InheritanceMapping(Code = 0Type = typeof(NewTopic), IsDefault = true)]  
  3. [InheritanceMapping(Code = 1Type = typeof(Reply))]  
  4. public class Topic  
  5. {  
  6. [Column(Name = "TopicID"DbType = "int identity"IsPrimaryKey = true
    IsDbGenerated = trueCanBeNull = false)]  
  7. public int TopicID { get; set; }  
  8. [Column(Name = "TopicType"DbType = "tinyint"CanBeNull = false
    IsDiscriminator = true)]  
  9. public int TopicType { get; set; }  
  10. [Column(Name = "TopicTitle"DbType = "varchar(50)"CanBeNull = false)]  
  11. public string TopicTitle { get; set; }  
  12. [Column(Name = "TopicContent"DbType = "varchar(max)"CanBeNull = false)]  
  13. public string TopicContent { get; set; }  

為類加了InheritanceMapping特性定義,0的時候類型就是NewTopic1的時候就是Reply。并且為TopicType字段上的特性中加了IsDiscriminator = true,告知Linq to sql這個字段就是用于分類的字段。

【編輯推薦】

  1. Linq結果集形狀概述
  2. Linq存儲過程返回詳解
  3. Linq調用LoadProducts方法
  4. Linq使用數據表簡單描述
  5. Linq對象引用簡單介紹
責任編輯:佚名 來源: IT168
相關推薦

2009-09-09 15:28:43

Linq to obj

2009-09-14 10:57:46

LINQ入門

2009-09-18 16:00:07

LINQ架構

2009-09-15 16:26:36

Linq orderb

2009-09-09 16:01:21

Linq實體繼承使用

2009-09-08 09:24:50

LINQ查詢

2009-09-14 10:20:52

LINQ查詢語法

2009-09-17 09:24:57

Linq實現分頁

2009-09-11 10:20:36

Linq擴展方法

2009-09-09 16:07:16

Linq實體關系

2009-09-11 12:32:33

LINQ表達式

2009-09-09 11:24:13

Linq使用數據表

2009-09-09 13:07:37

創建Linq數據庫

2009-09-09 15:37:27

Linq DataLo

2009-09-10 10:37:15

LINQ to SQL

2009-09-16 09:38:27

LINQ To SQL

2009-09-14 15:43:12

Linq Settin

2009-09-10 15:26:03

Linq City集合

2009-09-14 16:33:55

LINQ To XML

2009-09-15 11:14:33

LINQ to SQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久亚洲精品久久国产一区二区 | 欧美美女被c | 久久99精品久久久久 | 日韩精品在线播放 | 精品欧美乱码久久久久久1区2区 | 国产综合精品一区二区三区 | 久久久久久久久久爱 | 日韩视频精品在线 | 久久国产精品一区 | 久久综合影院 | 日韩av一区在线观看 | 毛片黄| 国产特黄一级 | 羞羞视频在线网站观看 | 久久九九色| 久久久久久国产 | 国产成人免费视频网站高清观看视频 | 国产精品久久久久久吹潮日韩动画 | 91精品久久久久久久久久 | 国产精品久久 | 欧美日在线 | 99久久99热这里只有精品 | 国产高清精品一区二区三区 | 色视频成人在线观看免 | 羞羞视频网站 | 我要看黄色录像一级片 | 欧美a区 | 欧美激情精品久久久久久 | 国产精品一区二区三 | 一区二区免费 | 9久久精品 | 成人在线免费电影 | 福利视频一区二区三区 | 国户精品久久久久久久久久久不卡 | 天天夜夜操 | 成人免费观看男女羞羞视频 | 国产小视频在线看 | 欧美中文一区 | 伊人无码高清 | 中文字幕国产一区 | www久久99 |