ASP.NET Core在WebApi項目中使用MiniProfiler分析Entity Framework Core
安裝配置MiniProfiler
在現(xiàn)有的ASP.NET Core MVC WebApi 項目里,通過Nuget安裝MiniProfiler:
Install-Package MiniProfiler.AspNetCore.Mvc MiniProfiler.EntityFrameworkCore
當然也可以通過Nuget Package Manager可視化工具安裝

接下來就是如何配置和使用 MiniProfiler 了,總共分三步:
第一步,來到Startup.cs的ConfigureServices方法里,添加services.AddMiniProfiler();
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DataContext")));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
// 首先添加一個配置選項,用于訪問分析結(jié)果:
services.AddMiniProfiler(options =>
{
// 設(shè)定彈出窗口的位置是左下角
options.PopupRenderPosition = RenderPosition.BottomLeft;
// 設(shè)定在彈出的明細窗口里會顯式Time With Children這列
options.PopupShowTimeWithChildren = true;
// 設(shè)定訪問分析結(jié)果URL的路由基地址
options.RouteBasePath = "/profiler";
})
// 然后在之前的配置后邊加上AddEntityFramework():
.AddEntityFramework();
}第二步,來到來到Startup.cs的Configure方法里,添加app.UseMiniProfiler();
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
// 最重要的一點是就是配置中間件在管道中的位置,一定要把它放在UseMvc()方法之前。
app.UseMiniProfiler();
app.UseMvc();
}第三步、運行程序,一共有3個可查看分析結(jié)果相關(guān)的URL地址:
1./profiler/results-index
- 先看results-index頁面:

它表示每次調(diào)用API的記錄結(jié)果??梢钥吹奖敬握{(diào)用API的總時間為1578.4毫秒。
2./profiler/results
- 從result-index頁面點擊鏈接進入這次API調(diào)用的詳細結(jié)果頁面,也就是result頁面:

它表示每次調(diào)用API的過程分析結(jié)果,具體到每一條SQL語句的內(nèi)容和執(zhí)行時間。
3./profiler/results-list
- 再看result-list頁面:

它其實就表示每個API的所有調(diào)用記錄結(jié)果的集合。
案例源碼:
到此這篇關(guān)于ASP.NET Core在WebApi項目中使用MiniProfiler分析Entity Framework Core的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Entity Framework Core使用控制臺程序生成數(shù)據(jù)庫表
- Entity Framework Core延遲加載(懶加載)用法
- Entity?Framework?Core實現(xiàn)Like查詢詳解
- Entity Framework Core中執(zhí)行SQL語句和存儲過程的方法介紹
- Entity Framework Core批處理SQL語句
- Entity Framework Core實現(xiàn)軟刪除與查詢過濾器
- Entity Framework Core生成列并跟蹤列記錄
- Entity Framework Core工具使用命令行
- Entity?Framework?Core關(guān)聯(lián)刪除
- 詳解如何在ASP.NET Core中應用Entity Framework
- Entity Framework Core對Web項目生成數(shù)據(jù)庫表
相關(guān)文章
.NET性能優(yōu)化之為結(jié)構(gòu)體數(shù)組使用StructLinq的問題解析
這篇文章主要介紹了.NET性能優(yōu)化為結(jié)構(gòu)體數(shù)組使用StructLinq,本系列的主要目的是告訴大家在遇到性能問題時,有哪些方案可以去優(yōu)化;并不是要求大家一開始就使用這些方案來提升性能,需要的朋友可以參考下2022-05-05
C#反射(Reflection)對類的屬性get或set值實現(xiàn)思路
可以使用反射動態(tài)創(chuàng)建類型的實例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象獲取類型并調(diào)用其方法或訪問其字段和屬性,接下來為大家介紹下對一個類別的屬性進行set和get值,感興趣的各位可以參考下哈2013-03-03
ASP.NET Eval進行數(shù)據(jù)綁定的方法
ASP.NET Eval在數(shù)據(jù)綁定方面的應用是眾所周知的,不過技術(shù)在發(fā)展,當ASP.NET Eval 1.1變成ASP.NET Eval 2.0的時候,在操作的時候會有什么變化呢?2013-04-04
asp.net BackgroundWorker之在后臺下載文件
下載文件是常見任務(wù),通常情況下,最好以單獨的線程來運行這項可能很耗時的操作。使用 BackgroundWorker 組件可以用非常少的代碼完成此任務(wù)2011-12-12

