C# 实体框架一对多查询

C# 实体框架一对多查询,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我有这个型号 规则。 一家公司可以提供多种服务 问题 用户可以输入服务名称列表(字符串列表),然后可以检索拥有该服务列表的公司 问题 我该怎么做?我想到的第一个解决方案是首先联接表,然后使用联接表中的lambda表达式。还有其他解决方案吗?您可以使用Where(): 如果使用了列表,则: Companies.Where(company => serviceNames.All( serviceName => company.Services.Any(service =>

我有这个型号

规则。

一家公司可以提供多种服务

问题

用户可以输入服务名称列表(字符串列表),然后可以检索拥有该服务列表的公司

问题


我该怎么做?我想到的第一个解决方案是首先联接表,然后使用联接表中的lambda表达式。还有其他解决方案吗?

您可以使用
Where()

如果使用了
列表
,则:

Companies.Where(company => serviceNames.All(
    serviceName => company.Services.Any(service => service.Service_Name == serviceName)))

你能提供一些你尝试过的和没有成功的代码示例吗?公司是如何根据服务名称检索的,我的意思是所有服务都需要匹配条件或用户输入的一个服务匹配条件?@AnkushMadankar你是什么意思?这是一个例子。如果我输入运输和电气。输入将转换为包含这两个单词的字符串列表,然后系统将执行以下操作:query@donthurtme然后跟着下面!你不能只查询服务表并获得公司名称服务。其中(s=>s.service\u name==“myservice”)是的,如果所需服务是一个服务列表,这可以完成。我的问题是,输入实际上只是名称(字符串类型)。有什么想法吗?@donthurtme您可以假设
所需服务
属于
列表
类型。(对于
c.services
)也是如此。现在知道了吗?
Companies.Where(company => serviceNames.All(
    serviceName => company.Services.Any(service => service.Service_Name == serviceName)))