Asp.net mvc 3 mvc迷你探查器配置说明

Asp.net mvc 3 mvc迷你探查器配置说明,asp.net-mvc-3,entity-framework-4,mvc-mini-profiler,Asp.net Mvc 3,Entity Framework 4,Mvc Mini Profiler,探查器安装在我的MVC 3应用程序中,可以正常工作,但我遇到的困难是如何正确设置EF 4 db部分 从探查器的主页 使用工厂返回您的连接: public static DbConnection GetOpenConnection() { var cnn = CreateRealConnection(); // wrap the connection with a profiling connection that tracks timings return MvcM

探查器安装在我的MVC 3应用程序中,可以正常工作,但我遇到的困难是如何正确设置EF 4 db部分

从探查器的主页

使用工厂返回您的连接:

public static DbConnection GetOpenConnection()
{
    var cnn = CreateRealConnection(); 

    // wrap the connection with a profiling connection that tracks timings 
    return MvcMiniProfiler.Data.ProfiledDbConnection.Get(cnn, MiniProfiler.Current);
}
实体框架

public static MyModel Get()
{
    var conn = ProfiledDbConnection.Get(GetConnection());
    return ObjectContextUtils.CreateObjectContext<MyModel>(conn);
}
公共静态MyModel Get()
{
var conn=ProfiledDbConnection.Get(GetConnection());
返回ObjectContextTILS.CreateObjectContext(conn);
}
好的,我想马上澄清一下MyModel Get方法对GetConnection()的调用是否应为GetOpenConnection()

那么,如果是输入错误,CreateRealConnection会是什么样子?我通过提供程序模型使用ODP.NET,并且我的模型库没有对Oracle.DataAccess.Client的引用,如果可以的话,我希望保持这种方式

此外,所有这些代码将驻留在我的存储库中的什么位置

public IQueryable<PRODUCTHEADER> Products
{
    get{ return ctx.PRODUCTHEADERs.AsQueryable(); }
}
公共易读产品
{
获取{return ctx.PRODUCTHEADERs.AsQueryable();}
}
谢谢,,
Stephen

我想说的是,mini profiler仅为4.0版本,但它最近已经更新。这可能会有所帮助(尽管您不是先编写代码的)


我能够从这篇文章中摘取片段 并首先为数据库缝合一个工作示例。现在,这段代码可能需要从控制器中提取出来,但它的工作方式与广告中的一样

作为旁注,我最初的问题是问文档中是否有错别字,我不这么认为,有两种不同的用法,它们并不像我想的那样相互依赖

mvc迷你剖析器FTW

问候,, 斯蒂芬

public ActionResult Index()
{
// http://code.google.com/p/mvc-mini-profiler/
// https://stackoverflow.com/questions/6802855/miniprofiler-with-ef-model-first-edmx-model
var profiler=MiniProfiler.Current;
var pConn=GetConnection();
var context=pConn.CreateObjectContext();
使用(profiler.Step(“做复杂的事情”))
{
使用(探查器步骤(“步骤A”))
{
睡眠(100);
}
使用(探查器步骤(“步骤B”))
{
睡眠(250);
}
使用(探查器步骤(“步骤C”))
{
var result=context.Albums.AsQueryable()
.OrderBy(a=>a.ArtistId).First();
返回视图(结果);
}
}
}
私有静态DbConnection GetConnection()
{
//SqlConnection、SqliteConnection……或者其他什么
var connectionString=ConfigurationManager.ConnectionStrings[“ChinookEntities”]。connectionString;
var ecsb=新的EntityConnectionStringBuilder(connectionString);
var sqlConn=新的SqlConnection(ecsb.ProviderConnectionString);
//使用跟踪计时的分析连接包装连接
返回ProfiledDbConnection.Get(sqlConn,MiniProfiler.Current);
}

您可以链接到mini profiler吗?您使用的是什么版本的EntityFramework?4.0还是4.1?
    public ActionResult Index()
    {
        // http://code.google.com/p/mvc-mini-profiler/
        // https://stackoverflow.com/questions/6802855/miniprofiler-with-ef-model-first-edmx-model

        var profiler = MiniProfiler.Current;

        var pConn = GetConnection();
        var context = pConn.CreateObjectContext<ChinookEntities>();

        using (profiler.Step("Doing complex stuff"))
        {
            using (profiler.Step("Step A"))
            {
                Thread.Sleep(100);
            }
            using (profiler.Step("Step B"))
            {
                Thread.Sleep(250);
            }
            using (profiler.Step("Step C"))
            {
                var result = context.Albums.AsQueryable()
                    .OrderBy(a => a.ArtistId).First();

                return View(result);
            }
        }
    }

    private static DbConnection GetConnection()
    {
        // A SqlConnection, SqliteConnection ... or whatever
        var connectionString = ConfigurationManager.ConnectionStrings["ChinookEntities"].ConnectionString;
        var ecsb = new EntityConnectionStringBuilder(connectionString);
        var sqlConn = new SqlConnection(ecsb.ProviderConnectionString);
        // wrap the connection with a profiling connection that tracks timings 
        return ProfiledDbConnection.Get(sqlConn, MiniProfiler.Current);
    }