Возникают проблемы при сравнении строк в сущностях Linq и SQL - PullRequest
0 голосов
/ 12 июня 2019

Я довольно новичок в Linq и EF.

В любом случае сравнение строк некорректно?

Я уже пробовал String.Equals или CompareTo, но эти возвращают boolean значения, я читаю для Linq, сравнение String == string похоже на WHERE statement из SQL.

public IHttpActionResult GetMultifiberResult(string partNumber)
{
    var list = db.MultifiberResults.Where(s => s.PartNumber == 
                partNumber).ToList();

    return Ok(list);
}

list должен возвращать набор значений, где столбец PartNumber из БД равен параметру partNumber. Когда я ищу, используя сравнение int, он находит совпадения в столбце int, но не в столбцах varchar. Контроллер всегда возвращает пустое значение, и счетчик равен 0.

1 Ответ

0 голосов
/ 12 июня 2019

Может ли это быть просто несоответствующим случаем? Попробуйте это, если и только если вы хотите игнорировать регистр:

public IHttpActionResult GetMultifiberResult(string partNumber)
{
    var list = db.MultifiberResults.Where(s => s.PartNumber.Equals(partNumber, StringComparison.OrdinalIgnoreCase)).ToList();

    return Ok(list);
}

В противном случае ваш код в порядке. Вам необходимо отладить его и показать нам результаты, а также убедиться, что в базе данных или значении параметра нет начальных или конечных пробелов; в этом случае вы должны .Trim() оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...