Entity Framework: где поле начинается с номера - PullRequest
6 голосов
/ 19 августа 2011

Я использую MVC3 с Entity Framework 4.1, и у меня есть сетка, которая разбита на страницы первым символом названия компании. У меня это работает отлично, но некоторые компании начинают с цифры. Я использую следующий запрос LINQ, чтобы получить компании, начинающиеся с выбранного номера, но как я могу выбрать те, которые начинаются с номера?

    var b = (from c in dbContext.Companies
             where c.CompanyName.StartsWith(selectedCharacter)
             select c)

Я пробовал:

 where char.IsNumber(l.CompanyName[0]) 

Но я получаю сообщение об ошибке, потому что он не знает, как преобразовать его в SQL.

Редактировать: я знаю, что могу просто сделать .CompanyName.StartsWith ("1") || .CompanyName.StartsWith ("2") и т. Д. Есть ли лучший способ? , Есть идеи?

1 Ответ

9 голосов
/ 19 августа 2011

Вы могли бы сделать что-то вроде этого.

var numbers = new string[]{"1","2","3","4","5","6","7","8","9","0"};
var b = (from c in dbContext.Companies
         where numbers.Contains(c.CompanyName.Substring(0,1))
         select c).ToList();

Вы можете столкнуться с проблемой, если ваша компания пуста.

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