У меня есть поиск Linq в C#, который ищет строку в базе данных.
Поиск использует в качестве параметров идентификатор категории и строку, состоящую из + + (например: Создан объект: ThisObjectIsASubDivision[1] из 100 ). Моя проблема в том, что имя объекта содержит специальные символы «[» и «]», поэтому, когда я пытаюсь запустить:
var result = dbConnect.Log.Where(X => X.CategoryId == parameters.categoryId && X.Description == "Object Created: " + parameters.ObjectName + " of 100").FirstOrDefault();
Я получаю значение null.
Мне известно ключевое слово «escape» в SQL, которое можно использовать в случаях, когда появляются такие символы, но я это делаю не знаю, как это сделать в LINQ.
Итак, я ищу что-то похожее на этот запрос (предположим, параметры.categoryId = 3) для использования в Linq:select * from Log where Log.CategoryId = 3 and Log.Description = 'Object Created: ThisObjectIsASubDivision\[1] of 100' escape '\'
или
select * from Log where Log.CategoryId = 3 and Log.Description like '%Object Created: ThisObjectIsASubDivision\[1] of 100%' escape '\'
Подробнее здесь: https://stackoverflow.com/questions/790 ... characters