91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linq如何定義實體繼承

發布時間:2021-12-02 09:40:44 來源:億速云 閱讀:124 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關Linq如何定義實體繼承的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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實體繼承帖子基類,分別是主題貼和回復貼:

public class NewTopic : Topic  {  public NewTopic()  {  base.TopicType = 0;  }  }  public class Reply : Topic  {  public Reply()  {  base.TopicType = 1;  }  [Column(Name = "ParentTopic", DbType = "int", CanBeNull = false)]  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這個字段就是用于分類的字段。

感謝各位的閱讀!關于“Linq如何定義實體繼承”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武平县| 宜州市| 佳木斯市| 鹤峰县| 高阳县| 嘉善县| 克山县| 页游| 贞丰县| 砚山县| 来凤县| 北川| 新郑市| 伽师县| 安龙县| 苏州市| 华蓥市| 河东区| 根河市| 景德镇市| 西平县| 华容县| 璧山县| 于田县| 玛沁县| 毕节市| 浏阳市| 浙江省| 彰武县| 松桃| 内乡县| 乐亭县| 丽江市| 金门县| 边坝县| 黑河市| 镇巴县| 东山县| 阿图什市| 慈利县| 阿克苏市|