2011-03-29 123 views
0

我有兩個表有一個一對多的關係(文章和標籤)。的LINQ to SQL:選擇一個一對多的關係

我記得看到的地方,我可以創建嵌套的對象/數組/等從關係。其中,我會在格式喜歡如(JSON格式)輸出:

{1 : { 
    id : 1, 
    title : 'article title', 
    tags : ({ 
     id : 16, 
     tagname : 'first tag' 
    },{ 
     id : 23, 
     tagname : 'another tag' 
    }) 
} 

我創建了一個內部的知識庫系統,一個列表視圖類似堆棧溢出的頭版(也就是這樣我想顯示標籤)。

我怎麼會去這樣做呢?子查詢?謝謝。

回答

2

如果我理解你的問題正確,您正在尋找的SelectMany功能,它可以讓你解開'嵌套結構,像你這樣的。 SelectMany確實查詢語法的一個子查詢執行:

IEnumerable<Tag> = 
    from article in Articles 
    from tag in article.Tags 
    select tag; 

在方法形式:

IEnumerable<Tag> tags = Articles.SelectMany(a => a.Tags); 
+0

所以這個工作,我需要設置我的.dbml文件是否正確? – Damiro 2011-03-29 16:31:29

+0

Yessir。但是,GUI應該工作得很好。 (你正在使用什麼版本的VS?) – Crisfole 2011-03-29 16:36:04

+0

Unsavory替代使用.dbml文件:使用ADO.NET(和手寫SQL)手動加載東西並使用Linq到對象。 – Crisfole 2011-03-29 16:37:11