2

我有一个 ASP.NET 页面,它是关联的 Handler 类。我想限制此处理程序中重复代码的数量。目前,我有一个方法可以返回包含来自两个连接表的数据的 DataTable。

公共共享函数 GetAllRecords() As DataTable
        将 dt 调暗为新数据表

        尝试
            使用上下文作为新的 QREntities()
                暗淡记录 =(来自上下文中的记录.QRRecords
                          加入广告 在 context.QRAdvertisements 上 record.adId 等于 advert.adId
                          选择record.recId、record.hitDate、record.hitLocation、record.ipAddress、advert.adRedirectUrl、advert.adType、advert.adData
                          按 hitDate 降序排序).ToList()

                '设置列标题及其接受的数据类型
                dt = SetDataTableColumns()

                对于每个 r In 记录
                    dt.Rows.Add(r.recId, r.hitDate, r.hitLocation, r.ipAddress, r.adRedirectUrl, r.adType, r.adData)
                下一个
            结束使用
        抓住前任作为例外
            什么都不退
        结束尝试

        返回 dt
    结束功能

现在我想允许个人按他们选择的任何列进行排序。我正在考虑将值作为参数传递,然后在 select 语句中检查,然后将关联的列与 Order By 一起使用,但问题是,Dim 记录是匿名类型的列表,这意味着我不能事先声明我知道。我的问题是每个人,最好的方法是什么?

我研究了查询对象、自定义表达式和查询集,但它们似乎让我误入歧途。

提前致谢!

4

1 回答 1

0

动态 Linq 库 OrderBy 函数允许对列和方向进行动态排序。

于 2012-09-05T21:43:43.397 回答