標籤:-o 瞭解 擷取 架構 新手 batch dapper uniq turn
一、摘要
為什麼取名叫《葵花寶典》?
從行走江湖的世界角度來講您可以理解為一本"武功秘籍",站在我們IT編程的世界角度應該叫"開發寶典"。
如果您在工作中主要接觸的是操作MySQL資料庫,但您又想學習和瞭解.NET輕量級ORM架構Dapper,那麼就請跟著阿笨一起學習本次的分享課《.NET輕量級ORM架構Dapper葵花寶典》。Let‘s Go,Do It ,Dapper For MySQL!
廢話不多說,直接上乾貨,我們不生產乾貨,我們只是乾貨的搬運工。
二、課程適合人群範圍
問:Dapper修鍊手冊和Dapper葵花寶典這兩個課程我該如何選擇?
答:結合自身需求,選擇合適就好。
2.1《.NET輕量級ORM架構Dapper修鍊手冊》適合人群如下:
1、我是一個新手,主要工作面向的是MS SQL Server資料庫,那麼選擇修鍊手冊一定沒錯。
2、對Dapper從沒有過瞭解或者瞭解不全面的同學,想通過學習進一步提升對Dapper的認識。
3、迫切想提高下ADO.NET實戰技術以及Transact-SQL的編寫能力。
4、詳細關於Dapper修鍊手冊可以去之前阿笨公布的公開課中查看課程介紹說明。
2.2、《.NET輕量級ORM架構Dapper葵花寶典》適合人群如下:
1、我是一個新手,主要工作面向的是MySQL資料庫,那麼選擇葵花寶典一定沒錯。
2、在Dapper修鍊手冊的基礎上新增一個Dapper擴充庫Dapper.SimpleCRUD。
3、如何運用Dapper操作Mysql資料庫以及Dapper如何支援多資料庫。
4、學習Dapper在實際項目常用的幾種開發架構模式。(簡單三層架構模式、原廠模式、Repository架構模式)
5、本次新增Dapper如何操作處理事務以及優雅的方式使用事務。(強烈推薦)
三、環境準備工作
3.1、mysql for windows資料庫安裝。
3.2、mysql圖形化管理工具介紹和使用。
3.3、mysql監控工具安裝和基本使用。
3.4、SqlServer測試資料庫轉換為Mysql資料庫。
1)、使用mss2sql工具將SqlServer轉換為Mysql。
2)、Navicat for MySQL 資料匯入嚮導功能。(強烈推薦)
備忘:資料匯入完成後,一定記得需要重新設定建立自增長列、索引欄位以及設定欄位的資料類型。
3.5、T4模板引擎基本介紹和簡單使用。
四、涉及覆蓋的知識點
1、.NET程式員對MySQL資料庫的基本認識和理解以及使用。
2、如何通過使用.NET輕量級ORM架構Dapper操作MySQL資料庫。
3、Faker.Net仿照測試資料架構運用。
4、VS單元測試NuitTest運用。
5、Dapper在非同步編程(Asyn Task)中的運用。
6、原生Dapper簡單的CRUD(增刪改查) 葵花寶典。(強烈推薦)
7、Dapper擴充庫Dapper.SimpleCRUD的基本使用。(強烈推薦)
8、Dapper如何通過DynamicParameters動態拼接查詢SQL修鍊手冊。(強烈推薦)
9、Dapper擴充庫Dapper.SqlBuilder、UniqueNamespace.SqlBuilder葵花寶典。(強烈推薦)
10、原生Dapper進階技巧葵花寶典。(強烈推薦)
11、Dapper擴充庫Dapper-Extensions葵花寶典。(強烈推薦)
4.1、原生Dapper簡單的CRUD(增刪改查)
Insert、Insert_Batch(批量插入資料)。
Update、Delete、Exist。
GetById、GetList、GetByIds(in子句使用)。
GetListReturnDynamic(返回dynamic)。
GetListByMultiQuery(返回多結果集Tuple)。
ExecuteWithDBTransaction(本地DbTransaction事務操作)。
ExecuteWithTransactionScope(分布式TransactionScope事務操作)。
4.2、Dapper擴充庫Dapper.SimpleCRUD的基本使用
Insert、Delete、Exist、Insert_Batch
GetById、GetList
GetListPaged(擷取分頁資料,通過Dapper.SimpleCRUD內建的RecordCount、GetListPaged函數分別擷取總記錄數和分頁資料。)
4.3、Dapper如何通過DynamicParameters動態拼接查詢SQL修鍊手冊
Insert、GetListByGenreIdAndName領略DynamicParameters的風采。
SearchOrdersByPageDynamicParametersSqlBuild:擷取分頁資料(通過DynamicParameters動態拼接查詢SQL方式拼接+ ROW_NUMBER() OVER 子句分頁)。
4.4、Dapper擴充庫Dapper.SqlBuilder修鍊手冊
通過SqlBuilder構造CRUD語句模板。
通過SqlBuilder內建的模板構造SELECT(查詢)、Page(分頁)語句模板。
SearchOrdersByPageDapperSqlBuilder:擷取分頁資料(通過Dapper.SqlBuilder拼接+ limit 子句分頁)。
SearchOrdersByDapperDapperSqlBuilderSqlPagingTemplates擷取分頁資料(通過Dapper.SqlBuilder內建提供的分頁模板進行分頁)。
4.5、原生Dapper進階技巧修鍊手冊
CreateOrder:建立訂單(採用sql拼接+for迴圈方式)。
GetOrderOneToManyBySqlBuilder:擷取訂單(一對多)通過主從表SQL語句方式。
GetOrderOneToManyByDapperQuery:擷取訂單(一對多)通過原生Dapper Query+splitOn關鍵字。
SearchOrdersByPageSqlBuild:擷取分頁資料(通過SQL語句拼接+ limit子句分頁)。
4.6、Dapper擴充庫Dapper-Extensions修鍊手冊
1、Insert、Insert_Batch(批量插入資料)。
2、Update、Delete、Exist。
3、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函數)。
五、Dapper葵花寶典線上學習和示範
六、小結
1、在ADO.NET的世界裡"手冊"和"寶典"在手,暢行無阻,橫行天下。
2、希望學完此本葵花寶典後,您將會汲取到滿滿的乾貨,讓您更加的有底氣!這樣阿笨也會感到一絲絲的欣慰。
3、最後阿笨的願景:力爭通過這兩次關於Dapper的分享課後,做到目前.NET方面關於Dapper最全面的教程。為.NET的崛起阿笨做一點綿薄之力吧!
4、問:怎樣高效的學習《Dapper修鍊手冊》和《Dapper葵花寶典》?
答:阿笨給出的建議是,您下載源碼後需要針對每一個測試案例進行調試和學習,這樣您才能瞭解和熟練的使用Dapper。
.NET輕量級ORM組件Dapper葵花寶典