我需要使用單個linq查詢來篩選linq中實體的子元素。這可能嗎?如何篩選Linq中的子集合
假設我有兩個相關的表。詩歌和VerseTranslations。由LINQ to SQL創建的實體是這樣的,我有一個Verse對象,它包含一個VerseTranslation集合的子對象。
現在,如果我有後續的LINQ查詢
var res = from v in dc.Verses
where v.id = 1
select v;
我得到詩篇的集合,其標識爲1,每節經文對象包含所有子從VerseTranslations對象。
我還想要做的是過濾Verse Translations的子列表。
到目前爲止,我已經能夠想出的唯一方法是通過使用新的類型匿名或其他。具體如下
var res= from v in dc.Verses
select new myType
{
VerseId = v.VerseId,
VText = v.Text,
VerseTranslations = (from trans in v.VerseTranslations
where languageId==trans.LanguageId
select trans
};
上面的代碼工作,但我不得不宣佈一個新的類吧。有沒有辦法做到這一點,這樣的子表上的過濾可以納入第一個linq查詢,以便不需要聲明新的類。
問候, MAC
從我的理解鏈接,其示例btw獲取單個對象,然後做一個負載。在我的情況下,我有一個收藏在水庫,我仍然無法適應我的情況。也許它缺乏睡眠:/ – MAC 2009-08-04 10:48:00
好..啞巴問題......但我找不到包含方法! 是它來自數據庫和兩個表有關係。 所以dc是datacontext,Verses是表格。但我不能獲得包含功能。 – MAC 2009-08-04 11:11:46
你是使用實體框架還是LINQ到SQL? – 2009-08-04 11:23:19