У меня есть проблема, с которой я был бы признателен за любую помощь.
Справочная информация - у меня есть база данных, которая содержит строку (т.е. - StackOverFlow), и мне нужно сравнить переданное значение с этой строкой и сделатьон чувствителен к регистру.
Сейчас у меня есть соединение с базой данных (используя EF 4), интерфейс IRepo<T>
(который я использую для доступа к таблице) и метод FindAllMatching
, который возвращает IQueryable<table>
и принимает параметр Expression<Func<tableName, bool>> expression
.
Класс репо:
public class TableRepo : IRepo<table>{
private EF4Entity _dc = new EF4Entity();
public IQueryable<table> FindAllMatching(Expression<Func<table, bool>> expression)
{
return _dc.table.Where(expression);
}
}
Телефонный код:
public class CallingClass
{
public void CallingMethod(string enteredStringFromTextBoxOnFrontEnd)
{
var tableDB = new TableRepo();
var returnValue = tableDB.FindAllMatching(x => x.ColumnInTableThatHoldsString.CompareTo(enteredStringFromTextBoxOnFrontEnd) ==0);
}
}
Прямо сейчас, когда я передаю строку, котораяполностью соответствует тому, что находится в таблице, но в случае (stackoverflow, в отличие от StackOverFlow) returnValue
фактически возвращает строку из таблицы.Если переданное значение не соответствует значению, содержащемуся в таблице базы данных, я хочу, чтобы оно возвращало ноль или счетчик нуля.
Я попытался сделать .Equals(enteredStringFromTextBoxOnFrontEnd, StringComparison.OrdinalIgnoreCase)
и все остальные StringComparison
значения и ничто не сравнивает регистр.
Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать.
Спасибо,
Тим