2016-04-22 5 views
0

У меня есть следующая структура базы данных.Web API Controller POST Request LINQ search через String Array

structure

Извините за ужасный MS Paint Работа

Я использую .NET Framework 4.6.1 Web Controller API с помощью Entity Framework.

Мой API Контроллер обрабатывает запрос пост, который получает структуру, аналогичную структуре:

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

^^ Над запрос должен найти детали ID = 1, и я хочу, чтобы выбрать часть запроса URL

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

^^ Вышеуказанный запрос должен найти идентификатор детали = 1 & 2, и я хочу выбрать URL-адрес для запроса для обоих.

«сцепление, Резистор, EN, США» должны найти детали ID = 2 и т.д.

Моего вопрос, как я в состоянии использовать LINQ к SQL или <IQueryable> вернуть часть идентификатора для любого поста запроса захватываются с помощью контроллера. текущий код, я работаю на до сих пор выглядит примерно так:

Внутри контроллера 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

Вы отвечаете не ясно, и я не могу полностью понять, что вы хотите делать. Как я понимаю, вы хотите вернуть URL-адреса Part1 и Part2 в одном запросе. If is true.Показать его

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