Фильтр LINQ для запроса сущностей на основе двумерного массива - PullRequest
0 голосов
/ 12 мая 2011

Это задача Linq2entities ...

У меня есть сущность (ID, CategoryID, Value) и двумерный массив int с парами CategoryID / Value.Мне нужно получить все сущности, отфильтрованные по каждой паре, что-то вроде:

from e in Entity
where (e.CategoryID and e.Value) in array
select e;

Так что в основном это фильтр "двух связанных полей".

Грязным решением было бы объединить и сравнить,как:

concatarray = some function to concat CategoryID + "/" + Value; 

from e in Entity
where e.CategoryID + "/" + e.Value in concatarray
select e;

но я не хочу использовать это из-за проблем с производительностью.

Есть идеи?

Большое спасибо!

1 Ответ

3 голосов
/ 12 мая 2011

Во-первых, я бы преобразовал ваш массив в список объектов с определенными свойствами. Использование 2d массива для этого не очень хорошая идея.

Тогда запрос, возможно, не будет переведен в SQL в EF.

from e in Entity
where array.Where(a=>a.CategoryID == e.CategoryID && a.Value == e.Value).Any()
select e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...