五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Entity Framework Core 7中高效地進(jìn)行批量數(shù)據(jù)插入

2022-12-01 10:19 作者:楊中科  | 我要投稿

因?yàn)橹暗陌姹局?,EF Core無(wú)法實(shí)現(xiàn)高效地批量插入、修改、刪除數(shù)據(jù),所以我開(kāi)發(fā)了Zack.EFCore.Batch這個(gè)開(kāi)源項(xiàng)目,比較受大家的歡迎,獲得了400多個(gè)star。

從.NET 7開(kāi)始,微軟在Entity Framework Core 7內(nèi)置了對(duì)高效地批量修改、刪除數(shù)據(jù)的支持,詳細(xì)請(qǐng)見(jiàn)這個(gè)文檔 https://learn.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-7.0/whatsnew?WT.mc_id=DT-MVP-5004444#executeupdate-and-executedelete-bulk-updates 因此我的這個(gè)開(kāi)源項(xiàng)目在.NET 7中將不再提供對(duì)批量修改、刪除數(shù)據(jù)的支持。但是由于Entity Framework Core中仍然沒(méi)有提供高效地批量插入數(shù)據(jù)的功能,因此我把這個(gè)開(kāi)源項(xiàng)目升級(jí)到.NET 7,從而繼續(xù)為EF Core提供高效地批量插入數(shù)據(jù)的功能。

為什么開(kāi)發(fā)這個(gè)功能?

Entity Framework Core中可以通過(guò)AddRange()方法來(lái)批量插入數(shù)據(jù),但是AddRange()添加的數(shù)據(jù)仍然是被逐條執(zhí)行Insert語(yǔ)句來(lái)插入到數(shù)據(jù)庫(kù)中的,執(zhí)行效率比較低。我們知道,我們可以通過(guò)SqlBulkCopy來(lái)快速地插入大量的數(shù)據(jù)到SQLServer數(shù)據(jù)庫(kù),因?yàn)镾qlBulkCopy是把多條數(shù)據(jù)打成一個(gè)數(shù)據(jù)包發(fā)送到SQLServer的,所以插入效率非常高。MySQL、PostgreSQL等也有類(lèi)似的支持。

當(dāng)然,直接使用SqlBulkCopy來(lái)進(jìn)行數(shù)據(jù)插入需要程序員把數(shù)據(jù)填充到DataTable,而且需要進(jìn)行列的映射等操作,還需要處理ValueConverter等問(wèn)題,用起來(lái)比較麻煩。因此我對(duì)這些功能封裝,從而讓EF Core的開(kāi)發(fā)者能夠更方便的以面向模型的方式來(lái)插入數(shù)據(jù)。

這個(gè)庫(kù)目前支持MS SQLServer、MySQL、PostgreSQL數(shù)據(jù)庫(kù)。

項(xiàng)目用法

這個(gè)庫(kù)的舊版也支持.NET 5、6等版本,具體用法見(jiàn)https://github.com/yangzhongke/Zack.EFCore.Batch ,下面只講.NET 7中的用法。

首先,安裝Nuget包:

SQLServer用戶: Install-Package Zack.EFCore.Batch.MSSQL_NET7

MySQL用戶: Install-Package Zack.EFCore.Batch.MySQL.Pomelo_NET7

Postgresql用戶: Install-Package Zack.EFCore.Batch.Npgsql_NET7

然后就可以使用這個(gè)開(kāi)源項(xiàng)目為DbContext提供的的擴(kuò)展方法BulkInsert來(lái)進(jìn)行數(shù)據(jù)的批量插入了,代碼如下:

開(kāi)源項(xiàng)目地址: https://github.com/yangzhongke/Zack.EFCore.Batch

希望這個(gè)庫(kù)能幫到大家。

歡迎閱讀我編寫(xiě)的《ASP.NET Core技術(shù)內(nèi)幕與項(xiàng)目實(shí)戰(zhàn)》,這本書(shū)的宗旨就是“講微軟文檔中沒(méi)有的內(nèi)容,講原理、講實(shí)踐、講架構(gòu)”。


Entity Framework Core 7中高效地進(jìn)行批量數(shù)據(jù)插入的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
翁牛特旗| 运城市| 西峡县| 林西县| 中超| 新丰县| 黄冈市| 封丘县| 平湖市| 香河县| 共和县| 梧州市| 临沭县| 长岛县| 老河口市| 潜山县| 康平县| 油尖旺区| 吉隆县| 保靖县| 黑河市| 泗阳县| 吉安县| 临沂市| 正定县| 辰溪县| 阿拉善右旗| 泾川县| 濮阳市| 平罗县| 武城县| 高雄县| 夏津县| 麦盖提县| 宜都市| 翁牛特旗| 高淳县| 大厂| 乐清市| 鸡泽县| 平阳县|