日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能

發布時間:2025/4/16 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言


?ASP.NET Core本身已經集成了一個輕量級的IOC容器,開發者只需要定義好接口后,在Startup.cs的ConfigureServices方法里使用對應生命周期的綁定方法即可,常見方法如下

services.AddTransient<IApplicationService,ApplicationService> services.AddScoped<IApplicationService,ApplicationService> services.AddSingleton<IApplicationService,ApplicationService>

除了ASP.NETCore自帶的IOC容器外,我們還可以使用其他成熟的DI框架,如Autofac,StructureMap等(筆者只用過Unity,Ninject和Castle,Castle也是使用ABP時自帶的),以及AspectCore

二、性能比較


?1、新建三個.NET Core2.1項目(項目比較源碼將會發到github上)

分別為:IOCDemo、Autofac、AspectCoreDemo

?

?2、在每個項目配置

?A、在每個項目中都添加EFCore的 mysql的nuget包。

注:如果引入的nuget包 Pomelo.EntityFrameworkCore.Mysql 是2.0以上的版本(不包含2.0),則需要再多引入 Microsoft.EntityFrameworkCore.Design

?

?

B、新建數據上下文LGDbContext(每個項目)

public class LGDbContext : DbContext{public LGDbContext(DbContextOptions<LGDbContext> options) : base(options) { }#region public DbSet<User> User { get; set; }#endregion}public class User{public int Id { get; set; }public string UserName { get; set; }public int WorkId { get; set; }public string Pwd { get; set; }}

?

?C、在原生的IOC項目中配置Startup.cs

public void ConfigureServices(IServiceCollection services){services.AddDbContext<LGDbContext>(a =>{a.UseMySql("Server=xxxxx;database=xxxx;port=3306;uid=root;pwd=xxx;Character Set=utf8;SslMode = none;");});services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);}

?

D、在aspectCore項目中配置

1、需要添加aspectCore的nuget包。

?

2、在startup.cs 文件中替換原生的IOC

public IServiceProvider ConfigureServices(IServiceCollection services){services.AddDbContext<LGDbContext>(a =>{a.UseMySql("Server=xxx;database=xxx;port=3306;uid=root;pwd=xxxx;Character Set=utf8;SslMode = none;");});services.AddMvc();var container = services.ToServiceContainer();return container.Build();}

?

?E、在AutofacDemo項目中配置

1、添加autofac的nuget包

?

2、在startup.cs 文件中替換原生的IOC

public IServiceProvider ConfigureServices(IServiceCollection services){services.AddDbContext<LGDbContext>(a =>{a.UseMySql("Server=xxx;database=xxx;port=3306;uid=root;pwd=xxxx;Character Set=utf8;SslMode = none;");});services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);var containerBuilder = new ContainerBuilder();//containerBuilder.RegisterModule<DefaultModule>(); containerBuilder.Populate(services);var container = containerBuilder.Build();return new AutofacServiceProvider(container);}

?

?F、三個項目都配置完后就在每個項目中配置 Controller接口,來比較所耗費的時間

#ValuesControllerpublic class ValuesController : ControllerBase{private readonly LGDbContext _lGDbContext;public ValuesController(LGDbContext lGDbContext){_lGDbContext = lGDbContext;}// GET api/values [HttpGet]public ActionResult<string> Get(int workid, string pwd){Stopwatch sw = new Stopwatch();sw.Start();var user = _lGDbContext.User.FirstOrDefault(a => a.WorkId == workid && a.Pwd == pwd);sw.Stop();TimeSpan ts2 = sw.Elapsed;Console.WriteLine("Stopwatch總共花費{0}s.", ts2.TotalSeconds);return Ok();}}

?

?以上配置完成后,我們就可以運行三個項目啦。我們來看一下各自所用的時間。

以下是分別運行的單獨項目。

aspectCore耗費時間

?

?autofac 耗費時間

?

原生IOC耗費時間

?

?下面是一起運行的項目的耗費時間

?

總得比較

aspectCore ?》 autofac 》 原生IOC

不過aspect core 與autofac差不了多少。具體根據你們項目中的使用吧。

當然其他的DI框架,目前沒有進行比較。如果大家有興趣可以多多比較以下。

?

github源碼:https://github.com/LouieGuo/LG_ComapreDI_Demo

?

asp.net?core 交流群:787464275?歡迎加群交流
如果您認為這篇文章還不錯或者有所收獲,您可以點擊右下角的【推薦】按鈕精神支持,因為這種支持是我繼續寫作,分享的最大動力!

作者:LouieGuo
聲明:原創博客請在轉載時保留原文鏈接或者在文章開頭加上本人博客地址,如發現錯誤,歡迎批評指正。凡是轉載于本人的文章,不能設置打賞功能,如有特殊需求請與本人聯系!

微信公眾號:歡迎關注? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?QQ技術交流群:?歡迎加群

? ? ? ? ? ? ? ??

轉載于:https://www.cnblogs.com/guolianyu/p/9981564.html

總結

以上是生活随笔為你收集整理的.NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人首页| 国产第4页 | 欧美一区二区黄片 | 中文字幕精品三区 | 四虎精品久久 | 欧美在线视频一区二区三区 | 野花av| 少妇导航av | 国产精品久久综合青草亚洲AV | 裸体按摩www性xxxcom | 免费黄色在线播放 | 国产理论在线观看 | 日本少妇高潮喷水xxxxxxx | 成人网久久 | 欧美理论片在线观看 | 午夜视频网址 | 黄色一级视频片 | 婷婷.com | 波多野结衣在线观看一区二区三区 | 日韩欧美理论 | 国产精品无码一区二区三区三 | 欧美另类视频在线 | 大尺度做爰呻吟舌吻情头 | 国产精品久久久久久久裸模 | 久久久久久久久久久网 | 精品人妻中文无码av在线 | 韩国一区二区在线观看 | 亚洲欧美一区二区在线观看 | 久久午夜国产 | 久久久无码人妻精品一区 | 热热色国产 | 七仙女欲春2一级裸体片 | 毛片网在线| 日本中文字幕在线免费观看 | 人人人妻人人澡人人爽欧美一区 | 免费一级片| 四虎精品欧美一区二区免费 | 亚洲美女影院 | 久久影院一区二区 | 性欧美一区二区 | 亚洲女人18毛片水真多 | 免费国偷自产拍精品视频 | 少妇裸体淫交视频免费看高清 | 国产一区二区免费视频 | 日韩免费av一区 | 国偷自产av一区二区三区麻豆 | 99re伊人| 亚洲天堂99| 日韩黄色在线播放 | 三上悠亚一区二区在线观看 | www.色黄| 日本偷拍一区 | 欧美一级日韩 | 久久午夜无码鲁丝片午夜精品 | 日本特黄色片 | 午夜影院在线 | 成人一区二区在线观看 | www天堂在线 | 农村少妇无套内谢粗又长 | 精品处破女学生 | 国产美女福利在线 | 丰满的女邻居 | www.操com | 亚洲成av人片一区二区 | 国产一卡二卡在线播放 | 国产区一区 | 国产日韩欧美亚洲 | 污网站免费在线观看 | 亚洲熟妇无码乱子av电影 | 国外亚洲成av人片在线观看 | 成人免费网站视频 | 手机在线免费观看av | 理论片国产 | 国产一级片子 | 一级全黄少妇性色生活片 | 黑人多p混交群体交乱 | 超碰中文字幕在线 | 中文字幕在线二区 | 在线看片一区二区 | 国产偷人妻精品一区二区在线 | 亚洲av无码一区二区乱子伦as | 国产传媒一区二区 | 夜夜嗨一区二区三区 | 在线不卡二区 | av免费精品 | 日韩成人av电影 | 在线观看不卡一区 | 在线观看国产精品入口男同 | 欧美影院一区二区三区 | 91久久国产视频 | 嫩草影院在线视频 | 汗汗视频 | 男男受被啪到高潮自述 | 久久久久久久综合色一本 | 人妖一级片 | 新91av| av高清一区| 亚洲国产免费视频 | 日韩大片免费观看视频播放 |