WhereIn с динамическим свойствомC#

Место общения программистов C#
Ответить
Anonymous
 WhereIn с динамическим свойством

Сообщение Anonymous »

Я хочу построить LINQ, который позже будет переведен в WHERE IN в sql. В обычном случае использования я бы сделал (

Код: Выделить всё

querable
— это IQueryable, а arr — это IEnumerable):

Код: Выделить всё

querable = querable.Where(e => arr.Contains(e.Id));
НО
моя проблема в том, что значение, которое я хочу фильтровать () является динамическим, и я получаю его в виде строки. Как я могу это сделать?
Еще немного истории: я создаю конечную точку REST API, в которой пользователь может отправлять, по какому столбцу он хочет фильтровать значения, поэтому примеры могут быть такими:

Код: Выделить всё

filter: {"id": [1,2]}
Что я хочу перевести во что-то вроде

Код: Выделить всё

queryable.Where(e => new [] {1,2}.Contains(e.Id))
Другой пример:

Код: Выделить всё

filter: {"customerId": [4,5]}
Я хочу перевести это во что-то вроде

Код: Выделить всё

queryable.Where(e => new [] {4,5}.Contains(e.CustomerId))
Поэтому в основном мои входные данные — это имя столбца, которое представляет собой строку, и список идентификаторов, который является IEnumerable
Я чувствую, что этого можно достичь с помощью Expression (аналогично этому ответу), но я не знаю, как это сделать.

Подробнее здесь: https://stackoverflow.com/questions/477 ... c-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»