Web API控制器POST请求LINQ搜索字符串数组

时间:2016-04-22 15:43:41

标签: c# .net entity-framework linq asp.net-web-api

我有以下数据库结构。

structure

抱歉可怕的MS Paint Work

我使用的是使用实体框架的.NET Framework 4.6.1 Web API控制器。

我的API控制器处理一个接收类似于以下结构的帖子请求。

{  "countryCode": "CA", "languageCode": "EN ","partTypes": "Brakes", "partComponents": "Relay" }

^^上面的请求应该找到部件ID = 1,我想选择部件请求URL

{ "countryCode": "US","languageCode": "EN ","partTypes": " Brakes , Clutch", "partComponents": "Relay"}

^^以上请求应该找到Part ID = 1& 2,我想为两者选择部分请求URL。

“Clutch,Resistor,EN,US”应该找到Part ID = 2等。

我的问题是如何使用LINQ to SQL或<IQueryable>返回控制器捕获的任何发布请求的部件ID。 到目前为止我一直在研究的当前代码看起来类似于:

内部API控制器:

public string Post(PostProfile postProfile) 
string[] partURLArray;
{
using (var context = new context())
{partURLArray = context.ViewName
.Where(fields = > field.CountryCode.Contains(postProfile.countryCode)
.Where(fields => fields.LanguageCode.Contains(postProfile.languageCode)
.Select(fields => fields.PartRequestURL).ToArray();
}
foreach 
(var part in partURLArray)
{
//do some stuff
}
return partString
}

发布档案模型类:

    public string countryCode { get; set; }
    public string languageCode { get; set; }
    public string[] partType { get; set; }
    public string[] partComponents { get; set; }

1 个答案:

答案 0 :(得分:0)

你回答并不清楚,我无法完全明白你想做什么。 据我所知,您希望在一个Query中返回Part1和Part2 URL。如果是真的,那就

 using (var context = new context())
 {partURLArray = context.ViewName
 .Where(fields = > field.CountryCode.Contains(postProfile.countryCode)
  OR fields.LanguageCode.Contains(postProfile.languageCode)
 .Select(fields => fields.PartRequestURL).ToArray();