Условные ярлыки в запросе LinqToSql

Вы выполняете подзапрос однажды для каждой строки , тогда как соединение происходит на индексах.

5
задан Shaul says I Support Monica 6 December 2009 в 12:08
поделиться

2 ответа

Если это linq to sql, помните, что Linq просто разбирает ваш запрос в SQL.

Поэтому он отправляет оба ваших предложения where в базу данных, отсюда и исключение. Я не нахожу это удивительным, хотя, возможно, это неправильно.

Вам просто нужно будет выполнить независимую проверку.

if (!string.isNullOrEmpty(state.statecode)
     q = q.where( s => s.code == state.statecode
6
ответ дан 14 December 2019 в 01:10
поделиться

Это не имеет отношения к LINQ в целом. В этом случае поставщик LINQ-to-SQL пытается проанализировать ваше лямбда-выражение и сделать его запросом TSQL. Он не может делать слишком много предположений, основанных на вашем выражении, поскольку он пытается делегировать большую часть работы базе данных.

Короче говоря, провайдер просто не может преобразовать его в SQL.

3
ответ дан 14 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: