代码之家  ›  专栏  ›  技术社区  ›  keyboardP

将gridview连接到数据源的最佳方法

  •  0
  • keyboardP  · 技术社区  · 16 年前

    我的DAL是使用Linq创建的,一切都很好。然而,在一个页面上,我将显示一个表(gridview),它从SQLServer数据库表中提取数据。然而,我听到了许多关于远离使用任何内置控件(ObjectDataSource和SQLDataSource)的警告。关于可伸缩性/效率,这有什么道理吗?我以前发布过类似的问题,但在本例中,我可以直接访问服务器。将数据绑定到gridview的最佳方式是什么?我不能缓存数据,因为它是为个人定制的,我不希望将它们存储在会话中,因为可能会调用100-200个自定义对象。我还没有真正涉猎过SQL,但只要稍加阅读,我相信我可以创建自己的自定义服务器端分页/过滤/排序。如果我为这些函数中的每一个都创建了一个存储过程并从objectdatasource调用它们,或者我应该使用Linq to SQL(在我的DAL中)调用SP,然后直接向gridview显示该信息,这样会有效率吗?

    谢谢你的建议

    1 回复  |  直到 16 年前
        1
  •  1
  •   Johannes Rudolph    16 年前

    如果网格视图或自定义对象数据源仅用于数百条记录,那么使用网格视图或自定义对象数据源并没有错。可伸缩性是数千条记录的一个问题。最快的访问可能是通过数据读取器填充数据表。将GridView绑定到Datatable对于大量记录来说总是一个好主意,因为绑定速度快,排序也快。

    因此,我编写了一个名为 modelshredder 它可以将任何IEnumerable对象集合转换为数据表。它使用动态发出的代码来完成它的工作,这就是为什么它的速度足够快,可以容纳数千条记录。您可以使用普通linq to sql编写和执行查询,预先将其投影到一个annonymous类型,并对结果调用.ToDataTable()。

    推荐文章