2

所有的 Command 对象都没有 Fill 方法,但在前一种方式中,我可以实例化一个新的 OracleDataAdapter。如何实例化 Profiled DataAdapter 以使用 MVC MINI PROFILER 分析我的数据库活动?

我所需要的只是将 Fill 命令与 MVC mini Profiler 的配置文件连接一起使用。

[更新]

我认为很多人之前一定已经这样做了,除非他们使用的是实体框架,它工作得很好而且很容易。在我的情况下,查询被动态加载到数据表中,并且无法映射实体,因为应用程序不知道它。

通过分析连接创建命令后最大的问题是将其设置为无法实例化的 DataAdapter。

[更新]进一步参考:

4

1 回答 1

2

根据罗里

“为此提供了一个类 ProfiledDbDataAdapter,您可以使用它来包装现有的 SqlDataAdapter。”

通过这个提示,您可以编写一些这样的代码

public DbConnection _dbConnection;
private DbCommand _dbCommand;
private DbDataAdapter _dbDataAdapter;

public DataSet GetResultByProcWithSingleParam(string procName, SqlParameter sqlParams)
        {
            try
            {
                _dbCommand = _dbConnection.CreateCommand();
                _dbCommand.CommandType = CommandType.StoredProcedure;
                _dbCommand.Parameters.Add(sqlParams);
                _dbCommand.CommandText = procName;
                _dbConnection.Open();
                _dbCommand.ExecuteNonQuery();
                _dbDataAdapter = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateDataAdapter();
                _dbDataAdapter = new ProfiledDbDataAdapter(_dbDataAdapter);
                _dbDataAdapter.SelectCommand = _dbCommand;
                _ds = new DataSet();
                _dbDataAdapter.Fill(_ds);
                _dbConnection.Close();
                return _ds;
            }
            catch (Exception ex)
            {

                throw;
            }

        } 

这段代码的命名空间是:

using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using StackExchange.Profiling;
using StackExchange.Profiling.Data;

我希望它会奏效。就我而言,它运行成功。

于 2015-05-13T08:49:26.953 回答