中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Linq如何定義實體繼承

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

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、通道網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為通道等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

Linq實體繼承的定義

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

  1. [Table(Name = "Topics")]  

  2. public class Topic  

  3. {  

  4. [Column(Name = "TopicID", DbType = "int identity", IsPrimaryKey = true, 
    IsDbGenerated = true, CanBeNull = 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實體繼承的定義大家應(yīng)該很熟悉了。下面,我們再來定義兩個Linq實體繼承帖子基類,分別是主題貼和回復(fù)貼:

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; }  }

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

  1. [Table(Name = "Topics")]  

  2. [InheritanceMapping(Code = 0, Type = typeof(NewTopic), IsDefault = true)]  

  3. [InheritanceMapping(Code = 1, Type = typeof(Reply))]  

  4. public class Topic  

  5. {  

  6. [Column(Name = "TopicID", DbType = "int identity", IsPrimaryKey = true, 
    IsDbGenerated = true, CanBeNull = 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的時候類型就是NewTopic,1的時候就是Reply。并且為TopicType字段上的特性中加了IsDiscriminator = true,告知Linq to sql這個字段就是用于分類的字段。

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

分享文章:Linq如何定義實體繼承
網(wǎng)頁路徑:http://www.rwnh.cn/article24/jippce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站維護、定制網(wǎng)站、網(wǎng)站建設(shè)App開發(fā)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
金堂县| 咸丰县| 怀化市| 华阴市| 乐至县| 邵阳市| 汾阳市| 乌苏市| 都江堰市| 连州市| 新竹市| 台中县| 吴江市| 格尔木市| 紫阳县| 长乐市| 建德市| 乌拉特前旗| 象州县| 普洱| 桂平市| 孟连| 正镶白旗| 新宁县| 南汇区| 铜川市| 晋江市| 达日县| 新晃| 酒泉市| 隆安县| 霍山县| 麟游县| 桓台县| 英超| 敖汉旗| 武隆县| 兴业县| 广宗县| 龙山县| 青河县|