gpt4 book ai didi

Linq-EF : How to query a Junction table?

转载 作者:行者123 更新时间:2023-12-04 06:20:21 25 4
gpt4 key购买 nike

我使用 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) 的数据库中的数据:
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));

感谢小伙伴们的支持!

最佳答案

不确定我是否正确理解您,但这可能是您需要的:
dbContext.CmsContent.Where(r => r.CmsContents.Any(t => t.Id = someId))

关于Linq-EF : How to query a Junction table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com