У меня возникла ситуация, когда мне нужно ограничить пользователя, чтобы ввести URL-адрес, который уже выходит в БД. Вот функция, которую я использую для проверки:Проверка наличия или отсутствия URL-адреса из базы данных
С помощью этого метода можно проверить для Url сказать «/ testurl /», который соответствует URL «/ testurl» в БД. Но в других случаях это не сработает, когда я иду, чтобы сравнить строку «/ testurl» с «/ testurl /» в БД.
Мне нужно удалить конечную косую черту в обоих случаях, но TrimEnd (new [] {'/'}) не будет работать над столбцом в запросе EF. Таким образом, следующий метод не сработает.
public bool IsContentUrlExists(string url)
{
url = url.Trim().TrimEnd(new[]{'/'});
return Context.Contents.Any(content => content.Url.Trim().TrimEnd(new[]{'/'}) == url);
}
Может ли кто-нибудь помочь мне с альтернативным решением?
NB: У нас нет никакого стандарта для URL в нашей существующей БД
Разве вы не можешь просто поместить URL из базы данных в строку переменной, а затем удалить завершающий слэш, а затем сравнить две строки? Вы не пытаетесь что-либо изменить в базе данных, так это в чем проблема? – wingyip
Это не идеальное решение. Я не хочу выводить весь объем данных в виде списка или какого-то рода и манипулировать этим. – Maninder
Ах ладно. Ничего страшного не было в комментариях выше. Кажется, вы должны искать совпадение, которое может иметь ИЛИ может не иметь завершающую косую черту – wingyip