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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

用于.NET Core的ORM

發布時間:2023/12/4 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用于.NET Core的ORM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

盡管EF Core正努力提供視圖和存儲過程等基本數據庫特性,但是開發人員也在尋求能滿足他們數據訪問需求的ORM工具。下面列出一些相對廣為使用的ORM。

LLBLGen Pro Runtime Framework

LLBLGen Pro Runtime Framework是一種“可選”的ORM,它是與LLBLGen實體建模工具一并使用的。這里稱其為“可選的”,是因為它也能和Entity Framework等其它ORM一起工作。

類似于Entity Framework,LLBLGen Pro Runtime Framework也是一種OOP風格的完備ORM(Full ORM)。但是它在幾個方面上有所差異,首先是它更側重于性能。盡管EF Core的性能顯著高于經典的Entity Framework,但是兩者依然明顯地低于其它的ORM。LLBLGen Pro的作者Frans Bouma發起了一個性能比賽,意在比較各種.NET數據訪問和ORM實現的速度。

LLBLGen Pro Runtime Framework也不同于EF/EF Core,它并非綁定于上下文(Context)的。每個實體無需維持一個打開的上下文,就可以追蹤自身的改變,并在內存中操作對象圖。該特性無疑會受到DBA的歡迎,因為無需維持打開的上下文,意味著不需要維持一個打開的數據庫連接,否則需要操作數據庫的連接池。

與大多數用于.NET Core的ORM一樣,在LLBLGen Pro Runtime Framework的Core版本上存在一些限制。但這些限制主要局限于.NET Core本身的缺失特性。例如,TransactionScope目前尚不被SqlClient支持、很少一部分對象是可二進制序列化等。

Dapper

另一種是廣為人知的微ORM(Micro-ORM)產品Dapper。Dapper常被認為是最快的ORM,幾乎總是保持著.NET ORM基準測試的頭名位置。

通常使用Dapper實現對原始SQL的調用并物化查詢結果,因此它在.NET和.NET Core上的工作情況基本相同。Dapper不同于完備ORM,它并不提供任何SQL生成功能。雖然許多開發人員并不相信由ORM生成的SQL,但這還是會令Dapper在使用上要比其它ORM產品更為繁瑣。

LINQ to DB

LINQ to DB稱自己是“超出Dapper、Massive、PetaPoco等微ORM產品一步之遙”。它不具備一些在Entity Framework中使用會引發性能問題的特性,例如更改追蹤。

LINQ to DB中的Join操作有些不同。在EF中,任何需要執行“Join”操作之處,事實上是作為子對象或集合(Collection)對待的。所生成的SQL自然會使用Join操作,但是當結果集被物化為對象后,SQL語句的執行就不再依賴于Join操作了。

LINQ to DB實際執行Join操作,具體實現為“Left Join”和“Inner Join”操作。如果使用EF解釋LINQ,那么生成語句在語法雖然略顯奇特,但更好地匹配了數據庫的實際工作情況。

DevExpress XPO

eXpressPersistent Objects(XPO)是一種商業產品。Reddit用戶“-GrapH-”對其如此評價:

我使用DevExpress XPO已有11年了。今年10月,它開始支持.NET Standard 2.0。盡管它是一個商業產品,但支持.NET Core的首個.NET測試版(v17.2.2)將對所有的用戶免費使用。進一步更新盡管需要付費,但是其中包括了視覺設計工具和技術支持。雖然該ORM不同于EF,并且推出的時間更長(如果我沒有記錯的話,它的第一個版本是針對.NET 1.1發布的),但是其中基本包含了各種規模應用程序所需的所有特性。它的演示和教程提供于https://github.com/DevExpress/XpoNetCoreDemos。

你的選擇是什么?

現有多種.NET Core可用的ORM。如果你已使用其中一種達數月時間,歡迎將你的認識反饋給我們。

譯者注:在原文評論中,有人指出NHibernate 5和EntityLite也支持.NET Core 2.0。

原文:http://www.infoq.com/cn/news/2017/12/NetCore-ORMs


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的用于.NET Core的ORM的全部內容,希望文章能夠幫你解決所遇到的問題。

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