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

溫馨提示×

溫馨提示×

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

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

Linq如何定義實體關系

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

這篇文章主要介紹了Linq如何定義實體關系,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Linq實體關系的定義

比如我們的論壇分類表和論壇版塊表之間就有關系,這種關系是1對多的關系。也就是說一個論壇分類可能有多個論壇版塊,這是很常見的。定義Linq實體關系的優勢在于,我們無須顯式作連接操作就能處理關系表的條件。

首先來看看分類表的定義:

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

  2. public class BoardCategory  

  3. {  

  4. [Column(Name = "CategoryID"DbType = "int identity"
    IsPrimaryKey = trueIsDbGenerated = trueCanBeNull = false)]  

  5. public int CategoryID { get; set; }  

  6. [Column(Name = "CategoryName"DbType = "varchar(50)"CanBeNull = false)]  

  7. public string CategoryName { get; set; }  

  8. private EntitySet<Board> _Boards;  

  9. [Association(OtherKey = "BoardCategory"Storage = "_Boards")]  

  10. public EntitySet<Board> Boards  

  11. {  

  12. get { return this._Boards; }  

  13. set { this._Boards.Assign(value); }  

  14. }  

  15. public BoardCategory()  

  16. {  

  17. this._Boards = new EntitySet<Board>();  

  18. }  

CategoryID和CategoryName的映射沒有什么不同,只是我們還增加了一個Boards屬性,它返回的是Board實體集。通過特性,我們定義了關系外鍵為BoardCategory(Board表的一個字段)。然后來看看1對多,多端版塊表的實體:

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

  2. public class Board  

  3. {  

  4. [Column(Name = "BoardID"DbType = "int identity"IsPrimaryKey = true
    IsDbGenerated = trueCanBeNull = false)]  

  5. public int BoardID { get; set; }  

  6. [Column(Name = "BoardName"DbType = "varchar(50)"CanBeNull = false)]  

  7. public string BoardName { get; set; }  

  8. [Column(Name = "BoardCategory"DbType = "int"CanBeNull = false)]  

  9. public int BoardCategory { get; set; }  

  10. private EntityRef<BoardCategory> _Category;  

  11. [Association(ThisKey = "BoardCategory"Storage = "_Category")]  

  12. public BoardCategory Category  

  13. {  

  14. get { return this._Category.Entity; }  

  15. set  

  16. {  

  17. this._Category.Entity = value;  

  18. value.Boards.Add(this);  

  19. }  

  20. }  

在這里我們需要關聯分類,設置了Category屬性使用BoardCategory字段和分類表關聯。

Linq實體關系的使用

好了,現在我們就可以在查詢句法中直接關聯表了(數據庫中不一定要設置表的外鍵關系):

Response.Write("-------------查詢分類為1的版塊-------------<br/>");  var query1 = from b in ctx.Boards where b.Category.CategoryID == 1 select b;  foreach (Board b in query1)  Response.Write(b.BoardID + " " + b.BoardName + "<br/>");  Response.Write("-------------查詢版塊大于2個的分類-------------<br/>");  var query2 = from c in ctx.BoardCategories where c.Boards.Count > 2 select c;  foreach (BoardCategory c in query2)  Response.Write(c.CategoryID + " " + c.CategoryName + " " + c.Boards.Count + "<br/>");

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Linq如何定義實體關系”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

密山市| 岑溪市| 工布江达县| 买车| 武夷山市| 上饶县| 隆尧县| 巩留县| 布拖县| 伊春市| 宣汉县| 永年县| 汨罗市| 石林| 穆棱市| 清镇市| 专栏| 灯塔市| 乐清市| 青岛市| 常山县| 明水县| 马龙县| 台东市| 佛坪县| 新营市| 卫辉市| 丹东市| 九龙县| 界首市| 图们市| 多伦县| 沙湾县| 沾化县| 马边| 措美县| 陆川县| 大埔区| 北碚区| 大安市| 雷山县|