我使用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