У меня есть код, который проверяет наличие двух строк на БД. Проблема в том, что он будет игнорировать корпус, поэтому abc123 будет таким же, как ABC123. Мне это не понравится. Я хочу, чтобы пользователь точно вводил строки.String "nfnfn" соответствует "nFnFN" и возвращает true - я хочу, чтобы он возвращал false
Это мой код:
public bool Consultant(string test, string test2)
{
return db.Consultants.Any(x => x.Test == test && x.Test2 == test2);
}
Не с помощью запроса, метод генерации один для меня.
Я полагаю, этот код переводится в некоторый запрос базы данных. В этом случае вступает в игру сортировка базы данных. Если эта сортировка нечувствительна к регистру, у вас нет возможности отличить эти две строки от вашего примера на стороне базы данных. Единственный способ - изменить сортировку на регистр, чувствительный к регистру, но это повлияет на все сравнения, сделанные на стороне БД. –
Возможный дубликат [Как сделать чувствительный к регистру поиск в предложении WHERE (я использую SQL Server)?] (Http://stackoverflow.com/questions/1831105/how-to-do-a-case-sensitive- search-in-where-clause-im-using-sql-server) – ieaglle
Это будет невозможно, если вы не сможете переопределить сортировку базы данных каким-то образом, потому что именно там происходит это сопоставление. LINQ преобразуется в SQL, поэтому сервер обрабатывает логику соответствия. – code4life