新聞中心
本文向大家介紹Linq實(shí)體關(guān)系,可能好多人還不了解Linq實(shí)體關(guān)系,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

在畢節(jié)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站制作,畢節(jié)網(wǎng)站建設(shè)費(fèi)用合理。
Linq實(shí)體關(guān)系的定義
比如我們的論壇分類表和論壇版塊表之間就有關(guān)系,這種關(guān)系是1對(duì)多的關(guān)系。也就是說(shuō)一個(gè)論壇分類可能有多個(gè)論壇版塊,這是很常見(jiàn)的。定義Linq實(shí)體關(guān)系的優(yōu)勢(shì)在于,我們無(wú)須顯式作連接操作就能處理關(guān)系表的條件。
首先來(lái)看看分類表的定義:
- [Table(Name = "Categories")]
- public class BoardCategory
- {
- [Column(Name = "CategoryID", DbType = "int identity",
IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false)]- public int CategoryID { get; set; }
- [Column(Name = "CategoryName", DbType = "varchar(50)", CanBeNull = false)]
- public string CategoryName { get; set; }
- private EntitySet
_Boards; - [Association(OtherKey = "BoardCategory", Storage = "_Boards")]
- public EntitySet
Boards - {
- get { return this._Boards; }
- set { this._Boards.Assign(value); }
- }
- public BoardCategory()
- {
- this._Boards = new EntitySet
(); - }
- }
CategoryID和CategoryName的映射沒(méi)有什么不同,只是我們還增加了一個(gè)Boards屬性,它返回的是Board實(shí)體集。通過(guò)特性,我們定義了關(guān)系外鍵為BoardCategory(Board表的一個(gè)字段)。然后來(lái)看看1對(duì)多,多端版塊表的實(shí)體:
- [Table(Name = "Boards")]
- public class Board
- {
- [Column(Name = "BoardID", DbType = "int identity", IsPrimaryKey = true,
IsDbGenerated = true, CanBeNull = false)]- public int BoardID { get; set; }
- [Column(Name = "BoardName", DbType = "varchar(50)", CanBeNull = false)]
- public string BoardName { get; set; }
- [Column(Name = "BoardCategory", DbType = "int", CanBeNull = false)]
- public int BoardCategory { get; set; }
- private EntityRef
_Category; - [Association(ThisKey = "BoardCategory", Storage = "_Category")]
- public BoardCategory Category
- {
- get { return this._Category.Entity; }
- set
- {
- this._Category.Entity = value;
- value.Boards.Add(this);
- }
- }
- }
在這里我們需要關(guān)聯(lián)分類,設(shè)置了Category屬性使用BoardCategory字段和分類表關(guān)聯(lián)。
Linq實(shí)體關(guān)系的使用
好了,現(xiàn)在我們就可以在查詢句法中直接關(guān)聯(lián)表了(數(shù)據(jù)庫(kù)中不一定要設(shè)置表的外鍵關(guān)系):
- Response.Write("-------------查詢分類為1的版塊-------------
");- 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 + "
");- Response.Write("-------------查詢版塊大于2個(gè)的分類-------------
");- 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 + "
");
【編輯推薦】
- Linq結(jié)果集形狀概述
- Linq存儲(chǔ)過(guò)程返回詳解
- Linq調(diào)用LoadProducts方法
- Linq使用數(shù)據(jù)表簡(jiǎn)單描述
- Linq對(duì)象引用簡(jiǎn)單介紹
當(dāng)前名稱:Linq實(shí)體關(guān)系簡(jiǎn)單概述
標(biāo)題鏈接:http://www.dlmjj.cn/article/dhpscco.html


咨詢
建站咨詢
