我使用c#,linq和EF4。
我的概念模型中的数据库中有两个表:
数据库表:
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)的DataBase中的数据:
FromContentId ToContentId
4 3
5 2
在表CmsContents中:
ContentId
2
3
4
5
我需要使用Linq或EF来检索Objects in CmsContent
列中关联的ToContentId
,过滤特定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));
感谢你们的支持!
答案 0 :(得分:2)
不确定我是否理解正确,但这可能就是您所需要的:
dbContext.CmsContent.Where(r => r.CmsContents.Any(t => t.Id = someId))