考虑存储过程和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应用程序的性能和大数据量时,哪个选项是最好的?

考虑存储过程和C#业务逻辑层代码之间的适当方式

这两种方法都很好,可以适用于任何实时应用程序。关于这两种方法,几乎没有什么意见。

存储过程:每次编译都非常强大。编写SP,以便它根据分页和排序提供您的记录。使用CTE可以进一步提高性能。参考http://www.sqlteam.com/article/server-side-paging-using-sql-server-2005了解更多详细信息。

如果数据库包含大量记录,这种方法将提高性能。

LinqExtensions:这仍然是一个强大的功能,但它可以很好地处理小数据库集。如果数据量很大,你会在其中看到性能问题。

我个人的选择将是第一种方法。

希望能有所帮助。