Как использовать linq to sql для возврата частичной строки текста - PullRequest
1 голос
/ 04 декабря 2010

Я написал этот оператор выбора сервера SQL, чтобы он возвращал только 204 символа и добавлял ... в конец, если в этой строке было более 204 символов.

SELECT Name, Active, Image, CASE WHEN LEN(Description) <= 204 THEN Description ELSE LEFT (Description , 204) + '...' END AS 'Short Description' FROM Brands

Как мне закончить этот код linq, чтобы сделать то же самое?

var query = db.Brands.Select(p=> new{
        Brand =p,
        p.Description.Length <-- I believe this is a starting point?>
    });

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Ну, буквальный перевод будет:

var query = db.Brands.Select(p => new {
        Brand = p,
        Description = p.Description.Length < 204 
                          ? p.Description 
                          : p.Description.Substring(0, 204) + "..."
    });

Но я бы удивился, если бы это сработало ...

Абсолютно важно, чтобы вы делали это на стороне SQL, а не на клиенте? Например, это будет работать:

var query = db.Brands
              .AsEnumerable()
              .Select(p => new {
        Brand = p,
        Description = p.Description.Length < 204 
                          ? p.Description 
                          : p.Description.Substring(0, 204) + "..."
    });
0 голосов
/ 04 декабря 2010

Правильный способ написать это так:

var query = db.Brands.Select(p=> new{
        Brand =p,
        c= p.Description.Length < 204 ? p.Description 
                               : p.Description.Substring(0, 204) + "..."
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...