Этот код прекрасно работает в среде SQL Server Management Studio:Передача пустой строки Ef6
SELECT [PassNumber] FROM [dbo].[Customers] WHERE [PassNumber] <> 'A'
Этот код также работает, как ожидалось:
string query = "PassNumber <> 'A'";
DbSqlQuery<Customer> data = db.Customers.SqlQuery(string.Format("select * from customers where {0}", query));
Теперь она изменяется, чтобы исключить пустые строки, и это код работает нормально на SSMS:
SELECT [PassNumber] FROM [Customers] WHERE [PassNumber] <> ''
Но я не могу найти способ правильно форматировать строку запроса. Я пробовал все возможные комбинации, о которых я думал, но код генерирует исключение: «Неверный синтаксис рядом с ключевым словом« <> ».
string query = "PassNumber <> '' ";
DbSqlQuery<Customer> data = db.Customers.SqlQuery(string.Format("select * from customers where {0}", query));
ПРИМЕЧАНИЕ. Для простоты проверка нулевого значения была исключена из примеров в вопросе.
Что исключение, которое выбрасывается? – drneel
Вы, вероятно, избегаете апострофа. Попробуйте «PassNumber <> '' ''"; (4 апострофа). –
Можете ли вы опубликовать весь sql, кажется, что в вашей строке запроса есть ошибка на основе сообщения об ошибке. – drneel