кастомный класс код падает с ошибкой
"Не удается обработать тип "Parameter[]", поскольку он не имеет известного сопоставления с уровнем значений."
Запрос такой
from n in table
join dataFirst in db.dataFirst on n.id equals dataFirst.n_id
join dataSecond in db.dataSecond on n.id equals dataSecond.n_id
where
n.type == Type.First.TypeID ?
(FirstParametersList.Where(parameter => parameter.Value = dataFirst.Value).Count() == FirstParametersList.Count())
:
n.type == Type.Second.TypeID?
(SecondParametersList.Where(parameter => parameter.Value = dataSecond.Value).Count() == SecondParametersList.Count())
: false
select dataFirst.n ?? dataSecond.n ?? null);
Это запрос к EF?
Он не может такое перевести на SQL. И вполне логично - вы там делаете подзапрос, к тому, что НЕ находится в базе. Вам придётся отделить обращения к данным в памяти от обращения к данным в БД
Понял. Только вот как такое провернуть? По факту у меня это должно происходить до получения данных, чтоб получать данные из бд, подходящие этим критериям. Получается мне придется все-таки порционально получать данные и проверять их уже после получения?
Как вариант. Другой вариант - вместо parameter[] использовать что-то более примитивное. string[], например, очень часто может быть транслирован в IN
хмм, понял. string[] тут не подходит, но как я понял можно использовать любые примитивные типы, так?
Обсуждают сегодня