.NET輕量級ORM組件Dapper修鍊手冊

來源:互聯網
上載者:User

標籤:通過   插入資料   ogr   資料類型   迴圈   lin   覆蓋   tran   rom   

一、摘要

1.1、為什麼叫本次的分享課叫《修鍊手冊》?

阿笨希望本次的分享課中涉及覆蓋的一些小技巧、小技能給您帶來一些協助。希望您在日後工作中把它作為一本實際技能手冊進行儲備,以備不時之需,一旦當手頭遇到與Dapper修鍊手冊中相似用法的地方和情境,可以直接拿來進行翻閱並靈活的運用到項目中。最後阿笨建議您可以根據自己在工作中碰到的不同的使用情境,不斷的完善此本修鍊手冊。

廢話不多說,直接上乾貨,我們不生產乾貨,我們只是乾貨的搬運工。


 四、涉及覆蓋的知識點

1、C# Linq To Xml技術。

2、Transact-SQL修鍊手冊。比如如何使用暫存資料表、建立使用者自訂表格(TABLE)、XML資料欄位、ROW_NUMBER分頁函數、預存程序修鍊手冊(動態執行SQL、異常處理機制、交易處理機制)、C#如何擷取預存程序的OUTPUT、RETURN參數值。

3、SQL Sever FOR XML技術(XML PATH、XML RAW、XML AUTO簡單用法介紹)。

4、Transact-SQL關鍵字OPENXML操作記憶體中的 XML 文檔。

5、Faker.Net仿照測試資料架構運用。

6、VS單元測試NuitTest運用。

7、Dapper在非同步編程(Asyn Task)中的運用。

8、原生Dapper簡單的CRUD(增刪改查) 修鍊手冊。(強烈推薦)

9、Dapper如何通過DynamicParameters動態拼接查詢SQL修鍊手冊。(強烈推薦)

10、Dapper擴充庫Dapper.SqlBuilder、UniqueNamespace.SqlBuilder修鍊手冊。(強烈推薦)

11、原生Dapper進階技巧修鍊手冊。(強烈推薦)

12、Dapper擴充庫Dapper-Extensions修鍊手冊。(強烈推薦)

五、Dapper修鍊手冊線上學習和示範

5.1、原生Dapper簡單的CRUD(增刪改查) 修鍊手冊

Insert、Insert_Batch(批量插入資料)。

Update、Delete、Exist。

GetById、GetList、GetByIds(in子句使用)。

GetListReturnDynamic(返回dynamic)。

GetListByMultiQuery(返回多結果集Tuple)。

ExecuteWithDBTransaction(本地DbTransaction事務操作)。

ExecuteWithTransactionScope(分布式TransactionScope事務操作)。

5.2、Dapper如何通過DynamicParameters動態拼接查詢SQL修鍊手冊

Insert、GetListByGenreIdAndName領略DynamicParameters的風采。

SearchOrdersByPageDynamicParametersSqlBuild:擷取分頁資料(通過DynamicParameters動態拼接查詢SQL方式拼接+ ROW_NUMBER() OVER 子句分頁)。

SearchOrdersByDynamicParametersOutPutANDReturnVaule:如何使用DynamicParameters構造和擷取預存程序OUTPUT、RETURN參數值,以及擷取預存程序返回一個或多個結果集。

5.3、Dapper擴充庫Dapper.SqlBuilder修鍊手冊

通過SqlBuilder構造CRUD語句模板。

通過SqlBuilder內建的模板構造SELECT(查詢)、Page(分頁)語句模板。

GetOrderOneToManyByDapperSqlBuilder:擷取訂單"一對多"通過SQL文法 XML PATH子句。

SearchOrdersByPageDapperSqlBuilder:擷取分頁資料(通過Dapper.SqlBuilder拼接+ ROW_NUMBER() OVER 子句分頁)。

SearchOrdersByDapperDapperSqlBuilderSqlPagingTemplates擷取分頁資料(通過Dapper.SqlBuilder內建提供的分頁模板進行分頁)。

5.4、原生Dapper進階技巧修鍊手冊

CreateOrder:建立訂單(採用sql拼接+for迴圈方式)。

CreateOrderByStoredProcedures_XMLPath:建立訂單(採用產生XML+SQL XML資料類型的XMLPath方式)。

CreateOrderByStoredProcedures_OpenXml:建立訂單(採用產生XML+SQL XML資料類型的OpenXml方式)。

CreateOrderByStoredProcedures_CustomTableType:建立訂單(採用SQL使用者建立自訂表格類型)。

GetOrderOneToManyBySqlBuilder:擷取訂單(一對多)通過主從表SQL語句方式。

GetOrderOneToManyByDapperQuery:擷取訂單(一對多)通過原生Dapper Query+splitOn關鍵字。

SearchOrdersByPageSqlBuild:擷取分頁資料(通過SQL語句拼接+ ROW_NUMBER() OVER 子句分頁)。

SearchOrdersByPageSqlStoredProcedures:擷取分頁資料(通過SQL分頁預存程序+ ROW_NUMBER() OVER 子句分頁)。

5.5、Dapper擴充庫Dapper-Extensions修鍊手冊

1、Insert、Insert_Batch(批量插入資料)。

2、Update、Delete、Exist。

3、Insert_BatchBySqlBulkCopy(基於SqlBulkCopy方法進行批量插入資料)。

4、GetList:包含如下知識點:

*根據條件進行查詢(帶過濾條件和排序欄位)。

*根據多組合條件進行查詢(通過IPredicate的Predicates.Group()產生過濾條件+排序欄位)。

*根據多組合條件進行查詢(通過IPredicate.Add()產生過濾條件+排序欄位)。

*根據多組合條件進行查詢(通過Predicate多條件複合謂片語合產生過濾條件+排序欄位,樣本SQL語句:Select * From Table Where([email protected] AND [email protected]) OR ([email protected] AND [email protected])。

*根據單條件進行子查詢查詢(通過IPredicate.EXISTS()子查詢過濾條件陳述式+排序欄位,樣本語句:Select * Form Table Where       Exists(Select 1 From Table Where [email protected]))。

*根據多組合條件進行子查詢查詢(通過IPredicate.EXISTS()子查詢過濾條件陳述式+排序欄位,樣本語句:Select * From Table Where Exists(Select Count(1) From Table Where([email protected] AND [email protected]) OR ([email protected] AND [email protected])))。

*SearchOrdersByPageDapperExtensions:擷取分頁資料(通過提供的擴充DapperExtensions多條件組合複合謂詞IPredicate+內建的Count、Page函數)。

六、小結

在ADO.NET的世界裡“海闊憑魚躍,天高任鳥飛”。

Transact-SQL編程能力再上一個台階。

領略到了Dapper她的“美”!

學完此本修鍊手冊後,您將會汲取到滿滿的乾貨,讓您更加的有底氣!

後續計劃:阿笨將後續計劃給大家帶來另外一堂分享課《.NET輕量級ORM組件Dapper實戰寶典》,大概包含Dapper For MSQL,Dapper For Mysql、Dapper For Oracle、資料訪問層之Repository模式以及基於Dapper開源的倉儲模式項目運用,等等。


.NET輕量級ORM組件Dapper修鍊手冊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.