Member 14663996 Ответов: 1

Синтаксис подстроки sqlit


public ActionResult GetRegion(string countryCode)
        {
            if (!string.IsNullOrWhiteSpace(countryCode))
            {
          List<Lsite> Lsites = db.Site.Where(t => t.Nom.Substring(1,5) == countryCode)
                                     .Select(x => new Lsite
                                     {
                                         CountryCode = x.code,
                                         Name = x.Nom
                                     }).ToList();
                return Json(Lsites, JsonRequestBehavior.AllowGet);
            }
            return null;
        }


Что я уже пробовал:

Я хочу знать хороший синтаксис.
Это один в не правильно

Richard Deeming

Вам нужно будет объяснить, почему это "не правильно". Помните, что мы не можем видеть ваши данные, и мы не знаем, что вы ожидаете от этого кода.

NB: Одной из очевидных проблем было бы, если бы в названии сайта не было по крайней мере шести символов. Или, возможно, код страны начинается с первого символа, поэтому вы должны использовать Substring(0, 5)?

Member 14663996

Подстрока(0, 5) - это хороший синтаксис. благодарить

Richard Deeming

В таком случае, вероятно, было бы лучше использовать StartsWith Таким образом, вы не получите исключения, если имя слишком короткое.

ZurdoDev

Ответьте на комментарий так, чтобы лицо, сделавшее комментарий, было уведомлено об этом.

1 Ответов

Рейтинг:
12

Richard Deeming

Как обсуждалось в комментариях, либо используйте Substring(0, 5):

db.Site.Where(t => t.Nom.Substring(0, 5) == countryCode)
или StartsWith:
db.Site.Where(t => t.Nom.StartsWith(countryCode))
Substring вызовет исключение, если имя не содержит по крайней мере пяти символов.

StartsWith можете вернуться true даже если ... countryCode это не совсем пять символов длиной.