考虑存储过程和C#业务逻辑层代码之间的适当方式
本文关键字:之间 代码 方式 存储过程 业务 | 更新日期: 2023-09-27 18:29:33
我正在使用JQGrid控件。它非常强大,功能丰富。
现在我必须考虑两件事。
- 网格数据排序
- 正在搜索
我的问题是我有两种选择来解决这个问题。
一种是使用C#LinqExtensions方法。
public static class LinqExtensions
{
public static IQueryable<T> OrderBy<T>(this IQueryable<T> query, string sortColumn, string direction)
{
...
}
public static IQueryable<T> Where<T>(this IQueryable<T> query,
string column, object value, WhereOperation operation)
{
....
}
}
另一种是使用存储过程,该存储过程允许解析包含排序和搜索条件的参数值。
如果我将使用第二个选项,我就不再需要依赖LinqExtension类。
当涉及到web应用程序的性能和大数据量时,哪个选项是最好的?
这两种方法都很好,可以适用于任何实时应用程序。关于这两种方法,几乎没有什么意见。
存储过程:每次编译都非常强大。编写SP,以便它根据分页和排序提供您的记录。使用CTE可以进一步提高性能。参考http://www.sqlteam.com/article/server-side-paging-using-sql-server-2005了解更多详细信息。
如果数据库包含大量记录,这种方法将提高性能。
LinqExtensions:这仍然是一个强大的功能,但它可以很好地处理小数据库集。如果数据量很大,你会在其中看到性能问题。
我个人的选择将是第一种方法。
希望能有所帮助。