profiler安装在我的MVC3应用程序中,并且可以正常工作,但我遇到的困难是正确设置EF 4db部分的正确方法。
从分析器的主页
使用工厂返回您的连接:
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方法的GetConnection()调用是否应该读取GetOpenConnection()?
如果是打字错误,CreateRealConnection会是什么样子呢?我通过提供者模型使用ODP.NET,而我的模型库没有对Oracle.DataAccess.Client的引用,如果可以的话,我更愿意保持这种方式。
另外,所有这些代码将驻留在我的存储库中的何处?
public IQueryable<PRODUCTHEADER> Products
{
get{ return ctx.PRODUCTHEADERs.AsQueryable(); }
}谢谢你,斯蒂芬
发布于 2011-07-27 12:46:25
我能够从这篇文章MiniProfiler with EF "model first" edmx model中拿出一些片段,并将数据库的工作示例拼接在一起。现在,这段代码可能需要从控制器中拉出,但它的工作情况与广告中所说的一样。
作为附注,我最初的问题是问文档中是否有拼写错误,我不相信有,有两种截然不同的用法,它们并不像我想的那样相互依赖。
mvc-mini-profiler 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<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);
}发布于 2011-07-25 20:05:54
我本想说mini-profiler只有4.0,但它最近被更新了。这可能会有所帮助(尽管您不是首先编写代码)
Using mvc-mini-profiler database profiling with Entity Framework Code First
https://stackoverflow.com/questions/6785758
复制相似问题