列出OrderBy问题

时间:2011-07-15 13:57:57

标签: c# asp.net entity-framework-4 sql-order-by tolist

我要自己处理gridview排序。我无法想出这个:

protected void gvPackages_Sorting(object sender, GridViewSortEventArgs e)
    {
    List<Package> pck = new List<Package>();
    pck = Session["Packages"] as List<Package>;

    var output = (from p in pck
                  orderby p.Department
                  select p);        <-line that breaks
    // var output = pck.OrderBy(x => x.Department).ToList(); <- I've also tried this
    gvPackages.DataSource = output;
    gvPackages.DataBind();
    }

我得到的错误是:

至少有一个对象必须实现IComparable。

包是一个实体,所以我不明白我错过了什么。我在网上找到的其他例子反映了我上面的内容,以及它的各种迭代。我错过了什么? 我还要说,部门只是一个领域,可以让它发挥作用,在最终版本中它会更具活力。

编辑:再次感谢堆栈,我是一个很大的假人。

2 个答案:

答案 0 :(得分:5)

问题在于您尝试在部门上订购,但部门类型不知道应如何订购,因为您尚未实施IComparable,这需要指定订单的方法,例如订单由Dept.Name或Dept.Location,Dept.Size,谁知道?

答案 1 :(得分:3)

无论Department的类型是什么,它都不会实现IComparable。它可能是一个对象/实体/ DataRow类型。

您想按ID,名称排序吗??