如何使用 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如何循环输入结果集