2016-04-22 19 views
0

我有以下數據庫結構。Web API控制器POST請求通過字符串數組LINQ搜索

structure

對不起,可怕的MS油漆工作

我使用使用實體框架的.NET Framework 4.6.1的Web API控制器。

我的API控制器處理接收類似結構的POST請求:

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

^^以上要求應該找到部分ID = 1,我要選擇部分請求URL

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

^^以上要求應該找到零件ID = 1 & 2,並且我想爲兩者選擇零件請求URL。

「離合器,電阻器,EN,美國」應該找到部分ID = 2等

我的問題是我怎麼能使用的LINQ to SQL或<IQueryable>返回的任何POST請求被捕獲的部分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

你的意思是這樣的? 'fields => postProfile.partType.Contains(fields.PartType)' –

回答

0

你回答不明確的我不能完全理解你想要做什麼。 據我所知你想在一個查詢中返回Part1和Part2的網址。如果是真的。收集

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();