我使用c#,linq和EF4。Linq - EF:如何查詢Junction表?
我已經在我的概念模型代表了我的數據庫的兩個表:
數據庫表:
CmsContents
CmsRelatedContents (Junction table)
實體類型:
CmsContent
我有一些導航特性:
for CmsContent --> CmsContents --> Return Collection of CmsContent --> from role: CmsContent1 to CmsContent (map ToContentId)
for CmsContent --> CmsContents1 --> Return Collection of CmsContent --> from role: CmsContent to CmsContent1 (map FromContentId)
數據在數據庫中爲結合表(CmsRelatedContents)被呈現:
FromContentId ToContentId
4 3
5 2
在表CmsContents:
ContentId
2
3
4
5
我需要使用Linq或EF,以檢索在ToContentId
列相關聯Objects in CmsContent
過濾結表具體的FromContentId
你有一個想法如何做到這一點?
請給我提供代碼示例。感謝您的幫助!
編輯:解決方案從您的支持
// Option A:
var test = from cnt in context.CmsContents
where cnt.CmsContents.Any(t => t.ContentId == contentId)
select cnt;
// Option B:
var toContents = context.CmsContents.Where(r => r.CmsContents.Any(t => t.ContentId == contentId));
謝謝你們!
的,什麼是你試試?像*給我一些代碼plz?*不常見,尤其是如果你沒有顯示任何你試過的東西。 –
我試過這個var toContents = context.CmsContents.FirstOrDefault(cnt => cnt.ContentId == contentId && cnt.CmsContents1.Any(from => from.ContentId == contentId))。CmsContents.Any(); – GibboK
但無法使用,感謝您的評論! – GibboK