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

时间:2009-10-30 00:39:30

标签: asp.net sql-server linq gridview

我的DAL是使用Linq创建的,一切都很好。但是,在一个页面上,我将显示一个表(gridview),它从SQL Server数据库表中提取数据。但是,我听到很多关于不使用任何内置控件(ObjectDataSource和SQLDataSource)的警告。关于可扩展性/效率,这有什么道理吗?我之前发布了类似的问题,但在这种情况下,我可以直接访问服务器。将数据绑定到gridview的最佳方法是什么?我无法缓存数据,因为它是针对个人量身定制的,我宁愿不将它们存储在会话中,因为可能会有100到200个自定义对象被调用。我还没有真正涉足SQL,但通过一些阅读,我确信我可以创建自己的自定义服务器端分页/过滤/排序。如果我为每个函数创建一个存储过程并从objectdatasource调用它们,或者我应该使用Linq to SQL(在我的DAL中)调用SP然后将该信息直接显示到gridview,那会有效吗?

感谢您的任何建议

1 个答案:

答案 0 :(得分:1)

使用网格视图或自定义对象数据源(如果它仅适用于数百条记录)没有任何问题。可伸缩性是成千上万条记录的问题。最快的访问可能是通过填充数据表的DataReader。将网格视图绑定到数据表对于大量记录来说总是一个好主意,因为绑定很快并且也可以进行排序。

因此我编写了一个名为modelshredder的库,它可以将任何IEnumerable对象集合转换为DataTable。它使用动态发出的代码来完成它的Job,这就是为什么它对于成千上万的记录来说足够快。您可以使用简单的linq-to-sql来编写和执行查询,可以预先设置为匿名类型并在结果上调用.ToDataTable()。