使用实体模型对数据排序

时间:2011-11-30 07:45:57

标签: c# asp.net entity-framework

我正在尝试排序不同的领域。即blogID,日期,作者 我通过方法找到了订单,但不知道如何传递方法中的值...请帮助

public List<blog> BlogFetch(string key)
{
    List<blog> blogRes = new List<blog>();

    using (var be = new BlogEntities())
    {
        blog res = new blog();

        foreach (var User in be.blogs.OrderBy(<what goes here?>))
        {
            res = User;
            blogRes.Add(res);
        }
    }
    return blogRes;
}

2 个答案:

答案 0 :(得分:3)

be.blogs.OrderBy(b => b.NameOfPropertyOnBlogClass)

它是Lambda expression,在LINQ中大量使用。关于LINQ语法入门的Here's一个很好的“备忘单”。

另外,如果您想在使用EF时加载项目列表,可以拨打ToList()

答案 1 :(得分:2)

OrderBy方法采用具有以下签名的函数:

TResult PropertyRetrieval<TInput, TResult>(TInput obj);

所以,如果您有一个Blog并且想要按BlogID排序,结果将是这个(假设BlogID是一个i​​nt):

int SortBy(Blog obj)
{
    return obj.BlogId;
}

您可以通过Lambda表达式输入:

be.blogs.OrderBy(blog => blog.BlogID); 
be.blogs.OrderBy(blog => blog.Date);
be.blogs.OrderBy(blog => blog.Author);