ASP.NET Core在WebApi項(xiàng)目中使用MiniProfiler分析Entity Framework Core
安裝配置MiniProfiler
在現(xiàn)有的ASP.NET Core MVC WebApi 項(xiàng)目里,通過Nuget安裝MiniProfiler:
Install-Package MiniProfiler.AspNetCore.Mvc MiniProfiler.EntityFrameworkCore
當(dāng)然也可以通過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);
// 首先添加一個(gè)配置選項(xiàng),用于訪問分析結(jié)果:
services.AddMiniProfiler(options =>
{
// 設(shè)定彈出窗口的位置是左下角
options.PopupRenderPosition = RenderPosition.BottomLeft;
// 設(shè)定在彈出的明細(xì)窗口里會(huì)顯式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)
{
...
// 最重要的一點(diǎn)是就是配置中間件在管道中的位置,一定要把它放在UseMvc()方法之前。
app.UseMiniProfiler();
app.UseMvc();
}第三步、運(yùn)行程序,一共有3個(gè)可查看分析結(jié)果相關(guān)的URL地址:
1./profiler/results-index
- 先看results-index頁面:

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

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

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

