FluentData 輕量級.NET ORM持久化技術詳解(C#4.5/Linq/Lambda,事務/儲存過程,開源架構)

來源:互聯網
上載者:User

標籤:關聯式資料庫   技術   通用   開發   講師   

  • 課程講師:風舞煙

  • 課程分類:.NET架構

  • 適合人群:初級

  • 課時數量:19課時

  • 更新程度:完成

  • 服務類型:C類(普通服務類課程)

  • 用到技術:FluentData

  • 涉及項目:FluentData輕量級


需要更多相關資料可以聯絡 Q2748165793

課程介紹

3.1 關於ORM

一、什麼是ORM

  ORM,即Object-RelationalMapping(對象關係映射),它的作用是在關係型資料庫和業務實體物件之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。 

二、使用ORM的優勢 

優勢一、隱藏了資料訪問細節,“封閉”的通用資料庫互動,ORM的核心。他使得我們的通用資料庫互動變得簡單易行,並且完全不用考慮該死的SQL語句。快速開發,由此而來。 

優勢二、ORM使我們構造固化資料結構變得簡單易行

在ORM年表的史前時代,我們需要將我們的物件模型轉化為一條一條的SQL語句,通過直連或是DBhelper在關聯式資料庫構造我們的資料庫體系。而現在,基本上所有的ORM架構都提供了通過物件模型構造關聯式資料庫結構的功能。這,相當不錯。

三、使用ORM的缺點 

第一:無可避免的,自動化意味著映射和關聯管理,代價是犧牲效能(早期,這是所有不喜歡ORM人的共同點)。現在的各種ORM架構都在嘗試使用各種方法來減輕這塊(LazyLoad,Cache),效果還是很顯著的。 

第二:物件導向的查詢語言(X-QL)作為一種資料庫與對象之間的過渡,雖然隱藏了資料層面的業務抽象,但並不能完全的屏蔽掉資料庫層的設計,並且無疑將增加學習成本. 

第三:對於複雜查詢,ORM仍然力不從心。雖然可以實現,但是不值的。視圖可以解決大部分calculated column,case,group,having,order by, exists,但是查詢條件(a and b and not c and (d ord))。。。。。。 

    世上沒有驢是不吃草的(又想好又想巧,買個老驢不吃草),任何優勢的背後都隱藏著缺點,這是不可避免的。問題在於,我們是否能容忍缺點 


3.2、幾種常見的ORM架構的比較 

幾種常用架構的比較 

以上就是市面上比較常見的.netORM架構。其實比較完美的ORM架構應該是滿足: 

1.對象與資料庫的映射 

2.對象緩衝 

3.可視化設計和代碼產生工具 

4.支援多資料庫 

5.動態查詢 

6.消極式載入 

7.非侵入式持久化 

8.效能優良 

9.支援預存程序和事務 

10.多物件導向架構支援 

ORM架構確實很方便,但發現也有其不足之處,比如多表聯集查詢,對視圖和預存程序的處理不理想。整體效能低於面向SQL語句。 

以上幾種架構比較常用的應該是NHibernate,微軟的EF及MyBatis.NET和FluentData。 

上述幾個架構各有優缺點 

如:NHibernate師出名門,大名鼎鼎的Hibernate廠商出品的專門針對.NET的ORM架構,優點是:功能強大,資料齊全,缺點是配置複雜,學習成本高 

微軟的EF自然 是在VS開發中首推的,優點是和VSIDE整合很好,缺點是效能較NHiberte低,據說6.0後,效能明顯加強,甚至於超過NHibernate,但本人未測,另外,對其他資料庫的支援需要安裝第三方外掛程式,還有個人感覺也過於寵大,使用起來,不夠靈活。MyBatic.NET功能和易用性介於NHibernate與EF之間。 

相比較而言,我們更推薦使用FluentData,一個輕量級開源的.NETORM資料持久化架構 

3.3、什麼是FluentData? 

FluentData:一種使用FluentAPI的新型輕量級ORM模型 

FluentData 是微型 ORM(micro-ORM)家族的一名新成員,旨在比大型ORM(full ORM)更加易用。FluentData 於本月推出,它使用 fluent API 並支援 SQLServer、SQL Azure、Oracle 和MYSQL。 

FluentData 的設計者 Lars-Erik Kindblad談到: 

 

當前市面上的 ORM 架構,如 Entity Framework 和NHibernate,都過於複雜而且難於學習。此外,由於這些架構自身抽象的查詢語言以及從資料庫到 .NET對象的映射太過麻煩,導致它們產生的 SQL 都很低效。 

FluentData 另闢蹊徑,它是一個輕量級架構,擁有簡單的 fluent API並且很容易學會。 

與其他微型 ORM(如 Dapper 和 Massive)類似,FluentData關注效能和易用性。它允許開發人員擁有對 SQL 較多的控制,而不是依賴 ORM 進行自動產生。它不僅可以使用 SQL來執行查詢、增添和更新操作,還可以支援使用預存程序和事務。根據文檔描述,FluentData可以在不改動已有結構的情況下,與任何業務對象一同工作。

 以下是 FluentData的一些其他特性: 

·多結果集(Multiple ResultSet):在一次資料庫操作下返回多個資料集; 

·開發人員可使用強型別對象或動態對象; 

·可為建立時需要特殊處理的複雜物件自訂實體工廠(Custom EntityFactory); 

·具有添加其他資料庫支援的能力。 

FluentData 需要 .NET 4.0,並支援 SQL Server、SQLAzure、SQL Server Compact 以及使用 .NET 驅動的 Oracle 和 MySQL。想要瞭解進一步資訊,如程式碼範例和免費下載,請訪問CodePlex 網站上的FluentData。(http://fluentdata.codeplex.com/) 

 

3.4、課程培訓目標:

1.全面瞭解C# 4.5 文法新特性

2.全面深入瞭解什麼是FluentData,以及如何使用FluentData結合.NET進行資料庫應用開發

3.通過執行個體融會貫通FluentDataAPI文法,特性以及最佳開發實踐

3.5、適合學員

1.能夠熟練使用C#文法開發簡單資料庫應用。

2.瞭解SQL語句,SQLServer或MySQL,Oracle中任一種即可



FluentData 輕量級.NET ORM持久化技術詳解(C#4.5/Linq/Lambda,事務/儲存過程,開源架構)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.