LINQ-to-SQL загрузить ключевое слово из переменной - PullRequest
1 голос
/ 01 апреля 2010
public IQueryable<ArticleDisplay> SearchNumberOfArticles(int articleNr, string order)
        var result = (
                     from category in db.ArticleCategories
                     join article in db.Articles on category.CategoryID equals article.CategoryID                        
                     orderby article.Date order
                     select new ArticleDisplay
                     {
                         CategoryID = category.CategoryID,
                         CategoryTitle = category.Title,

                         ArticleID = article.ArticleID,
                         ArticleTitle = article.Title,
                         ArticleDate = article.Date,
                         ArticleContent = article.Content
                     }
                     ).Take(articleNr);

В PHP это будет работать, а в C # - нет. Итак, как загрузить ключевое слово из переменной и «напечатать» его внутри запроса? Здесь order предполагается заменить на descending или ascending. Спасибо

1 Ответ

1 голос
/ 01 апреля 2010

Вы можете использовать оператор if

IQueryable<ArticleDisplay> SearchNumberOfArticles(int articleNr, string order)
{
    ................
    var articles = from category in db.ArticleCategories
                   join article in db.Articles 
                   on category.CategoryID equals article.CategoryID
                   select article;

    if (string.IsNullOrEmpty(order) || order == "ascending" || order = "asc")
    {
        articles = articles.OrderBy(a => a.Date).Take(articleNr);
    }
    else
    {
        articles = articles.OrderByDescending(a => a.Date).Take(articleNr);
    }
    .............
}
...