2016-04-22 13 views
0

私は以下のデータベース構造を持っています。恐ろしいMSペイント作業Web APIコントローラPOST要求LINQ検索(文字列配列)

私はEntity Frameworkのを使用しての.NET Framework 4.6.1のWeb APIコントローラーを使用していて申し訳ありません

structure

マイAPIコントローラは、同様の構造を受信ポスト要求ハンドル:パートID = 1を見つける必要がありますリクエストの上

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

を^^、と私はパートリクエストURLを選択したい

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

^^上記のリクエストは、部品ID = 1 & 2を見つけて、両方の部品リクエストURLを選択したいと思います。

「クラッチ、抵抗器、EN、米国の」パートID = 2見つける必要など

は私の質問は、私はポストの要求が捕獲されているもののために部品IDを返すために、SQLまたは<IQueryable>にLINQを使用することができる午前方法ですコントローラによって。私がこれまでに取り組んできた 現在のコードは次のようになります。

内部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のURLを1つのクエリで返したいと思っています。真実ならば。

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