我在asp.net页面中有一个datagrid。还有网格的过滤器和搜索按钮。 我有以下可能的编码选项:
我无法确定哪种编码方式最好。此外,我使用3层架构,因此无法确定哪种铺设最适合应用滤镜。
答案 0 :(得分:1)
2.获取网格的所有数据并使用LINQ
应用过滤器+搜索文本
当您使用LINQ并拥有远程数据源时,您可以使用IQuerable
您描述了构建表达式树时所需的==>
被解释(在您的情况下为SQL)(比较IEnumerable
vs I Queryable
)
我的投票:因此尝试使用Linq因为它有一些优点
a)类型安全
b)我的经验是,LINQ可以帮助您创建良好的结构化解决方案,其中包含Take(10).OrderBy(xx).Skip(30)
我发现的缺点是你对创建SQL的控制较少,你需要花一些时间进行调优......
NutShell中的好书c#3.0 LinqPad LINQ in Action
答案 1 :(得分:0)
如果您有大量数据,则在数据库中应用过滤器(仅选择所需的确切记录数)或在数据库查询中应用过滤器是个好主意。例如,如果你有300万条记录,并且你一次只显示50条记录,只加载你需要的50条记录,并使用LINQ .Skip()。Take()方法到页面是一个好主意。如果您决定使用存储过程,那也是可行的,并且SP在LINQ和DataTable中工作。
过滤器可能更难在数据库之外应用;这可以在数据表或LINQ中轻松实现。这取决于应用过滤器需要多么容易或多难,无论它们是否可以轻松应用于数据库查询,还是需要通过加载所有数据并循环遍历代码隐藏中的过滤器。
无论你是使用DataTables还是LINQ,都是一种可行的方法。 LINQ是更新的技术,并且留在这里; DataSets将会存在一段时间,但不要指望任何新的数据集功能,因为ADO.NET Entity Framework是新的数据集。
希望这有任何意义。