如何使用 LINQ 在 asp.net mvc 中获取具有特定子值的所有父母? [复制]

Posted

技术标签:

【中文标题】如何使用 LINQ 在 asp.net mvc 中获取具有特定子值的所有父母? [复制]【英文标题】:How to get all parents with a specific child value in asp.net mvc using LINQ? [duplicate] 【发布时间】:2020-10-30 20:09:30 【问题描述】:

在一个 Asp.net MVC 项目中,我有表(公司、活动和部分),公司可以有一个或多个活动,每个活动都有一个部分(“sectionId”)作为部分表的外键。现在我想获得具有特定“sectionId”的所有公司(具有给予 sectionId 的活动的公司)。 我已经使用此代码按名称获取公司,但不知道如何通过传递“SectionId”来获取具有特定部分的活动公司,

Companies = Companies.Where(c => c.NameLatin.ToLower().Contains(NameLatin.ToLower())).ToList();

【问题讨论】:

你现在能做什么,你卡在哪里了?你能得到包含这样一个部分的活动吗? 我可以获取特定部分的活动,但我不知道如何获取具有特定部分的活动的公司 你能发一下吗?我们可以从那里开始工作。 这个我试过了 var activites = db.Activities.Where(a => a.SectionId == SectionId); foreach(var activity in activites) Companies = Companies.Where(c => c.ApplicationUserId == activity.ApplicationUserId).ToList(); 【参考方案1】:

当您只发布不可行的内容然后不解释原因时,几乎不可能猜测什么会有效。

试试这个:

var sectionId = the_section_id_your_looking_for;

var applicationUserIds = db.Activities.Where(a => a.SectionId == sectionId).Select(a => a.ApplicationUserId).ToArray();

var companies = Companies.Where(c => applicationUserIds.Contains(c.ApplicationUserId)).ToList();  

这并不理想,因为我确信你可以从中得出两个陈述,但我不知道你的结构实际上是什么样的。

【讨论】:

以上是关于如何使用 LINQ 在 asp.net mvc 中获取具有特定子值的所有父母? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 sql asp.net mvc 5 中使用 linq 时如何格式化记录中的数据?

如何使用 LINQ 和 ASP.NET MVC 持久化用户与其关联的数据库?

使用asp.net mvc + linq to sql如何循环输入结果集

在 ASP.Net MVC 的视图中使用 2 个表(使用不同的模型返回 2 个 LINQ?)

ASP.net MVC LINQ 空引用异常 [重复]

在 ASP.Net MVC (LINQ) 中将嵌套数据从控制器传递到视图