詳解.NET主流的幾款重量級?ORM框架
市場上輕量級ORM有很多,比如Dapper、Chloe 本篇文章就介紹一下 功能比較多并且全的ORM
1、Entity Framework(重量級)
2、SqlSugar(重量級)
3、NHibernate(重量級)
4、PetaPoco (介于EF和Dapper之間)
對比:操作的難易程度、執(zhí)行效率、跨數據庫
應用程序的組成必須有數據庫
開發(fā)人員的職責:編寫業(yè)務和功能性代碼
如果讓開發(fā)人員去學習數據庫增加了開發(fā)成本,將數據庫操作封裝為代碼級別的API讓程序員調用,實現了職責分離
1、Entity Framework
1.一般EntityFrameworkCore(ORM映射工具)安裝在你的數據項目工程中,這里我通過nuget安裝的sqlserver的包。對應的數據和安裝對應的包就行。包名如下:
Microsoft.EntityFrameworkCore.SqlServer
2.然后我們建立好對應的數據Model
3.Model建立完成后,我們建立數據庫上下文文件如下
EFCORE是微軟 官方ORM ,也是每個.NET用戶必學的框架,工作中占比最高的ORM
2、SqlSugar
是一款使用比較簡單的重量級ORM ,有完整的中文文檔上手快,也是重多國產ORM代表之一,同類型的還有幾款這里不作介紹功能基本上差不多
功能全面 有完善的表達式 、支持導航查詢、導航插入、導航刪除、字典插入、BulkCopy、數據庫管理、二級緩存、AOP、CodeFirst、DbFirst、WebFirst、導入驗證、分批處理、樹型查詢、倉儲、低代碼、UOW等、事務和鎖、嵌套查詢、并集查詢和ADO操作等
Nuget 安裝 .NET Core就安裝 SqlSugarCore
導航查詢
var list=db.Queryable<Test>() .Includes(te => te.Provinces, pro=>pro.Citys ,cit=>cit.Street) //多層級 .Includes(te=> te.ClassInfo)// 一級查詢 .ToList();
聯表查詢
var query5 = db.Queryable<Order>() .LeftJoin<Custom> ((o, cus ) => o.CustomId == cus.Id)//多個條件用&& .LeftJoin<OrderDetail> ((o, cus, oritem) => o.Id == oritem.OrderId) .Where(o => o.Id == 1) .Select(o =>o) .ToList();
3、PetaPoco(增刪改不需要自己寫sql語句)
Nuget下載PetaPoco,安裝時會自動生成模板(介于EF和Dapper之間)
其中在DataBase.tt模板文件中修改配置ConnectionStringName為連接字符串的name,其他配置修改可選
using(var context = new DbContext()) { var list = context.Query<Article>("select * from article"); foreach(var item in list) { console.WriteLine(item.Title); } } //PetaPoco插入 var article = new Article{ Title="測試標題",Content="測試內容" }; var count = article.Insert();
4、NHibernate
比較貼近Java程序員的ORM,學習成本比較高
1.完全的ORM框架
NHibernate對數據庫結構提供了較為完整的封裝,它將數據庫模式映射為較完全的對象模型,支持封裝,繼續(xù)機制,功能較強大,比一般的ORM靈活性高。
開發(fā)人員可以完全按照對象模型操縱數據庫。
2.代碼自動生成,減少代碼和sql的開發(fā)量,使開發(fā)人員擺脫開sql,ado.net和事務,緩存等底層。
NHibernate的O/R Mapping實現了PO 和數據庫表之間的映射,以及SQL 的自動生成和執(zhí)行。程序員往往只需定義好了PO 到數據庫表的映射關系,即可通過NHibernate提供的方法完成持久層操作。程序員甚至不需要對SQL 的熟練把握, NHibernate 會根據制定的存儲邏輯,自動生成對應的SQL 并調用ADO.NET接口加以執(zhí)行。NHibernate有工具可以直接根據數據庫模式生成po類,或者通過在代碼中添加Attribute屬性自動生成配置文件。
這些都減少了開發(fā)工作量。
3.較好的文檔支持。
NHibernate的代碼可讀性和文檔都比較好。
到此這篇關于詳解.NET主流的幾款重量級 ORM框架的文章就介紹到這了,更多相關.NET ORM框架內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
數據庫SqlParameter 的插入操作,防止sql注入的實現代碼
今天學習了一下SqlParameter的用法,原來這么寫是為了防止sql注入,破壞數據庫的。并自己動手連接了數據庫。2013-04-04asp.net發(fā)布后web.config中compilation的debug的值true和false區(qū)別點整理
在本篇文章里小編給大家整理的是一篇關于asp.net發(fā)布后web.config中compilation的debug的值true和false區(qū)別點內容,有需要的為朋友們可以參考下。2020-01-01在.NET Core類庫中使用EF Core遷移數據庫到SQL Server的方法
下面小編就為大家分享一篇在.NET Core類庫中使用EF Core遷移數據庫到SQL Server的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12基于MVC4+EasyUI的Web開發(fā)框架之附件上傳組件uploadify的使用
這篇文章主要介紹了基于MVC4+EasyUI的Web開發(fā)框架之附件上傳組件uploadify的使用,需要的朋友可以參考下2017-08-08