一、快速上手
使用Dapper非常方便,通過Nuget引入Dapper,然後通過ADO.NET的Connection對象創建一個實例,就可以輕鬆地進行資料庫操作。Dapper中,使用擴展方法Execute()和Query()可以非常簡單地執行資料庫的增、刪、改、查操作。以下是一個簡單的示例,展示了Dapper如何執行一個Select語句:
using(var conn = new SqlConnection(connectionString)) { var results = conn.Query<T>(sql); return results.ToList(); }
這段代碼首先使用SqlConnection對象創建了一個連接,使用Query方法以及SQL查詢語句執行了一個查詢操作,查詢結果以List<T>類型返回,至此,我們已經完成了一個最簡單的Dapper查詢操作。
二、高效ORM框架
Dapper是一個輕量級、高效的ORM框架,相對於其他類似的框架,Dapper的速度更快,內存使用更少。
Dapper是怎麼做到高效的呢?Dapper的高效主要得益於其使用了一些優秀的設計原則,比如:
1、緩存機制: Dapper中內置了對緩存的支持,緩存的查詢結果可以增加查詢的效率,減少了對資料庫的壓力。例如:
conn.Query<T>(sql, param, commandTimeout: 20, buffered: true);
這段代碼中的buffered參數表示是否使用緩存,默認值為true,如果開啟了緩存,那麼查詢結果會被緩存到內存中。當查詢的數據比較大時,可以考慮關閉緩存。
2、方法支持非同步操作: Dapper提供了非同步操作的方法,充分利用CPU資源,做到高效查詢數據。例如:
await conn.QueryAsync<T>(sql, param);
3、支持手動映射: Dapper不同於其他ORM框架,採用手動映射,更加靈活且支持自定義映射。例如:
var data = connection.Query(sql, Map, splitOn: "", param:param).ToList();
這段代碼中的Map對象就是自定義的映射規則,Dapper會自動根據映射規則進行對象的轉換。
三、Dapper應用實例
1、使用Dapper操作cba賽程
以下是使用Dapper查詢cba賽程的代碼示例:
public class CbaGame { public int Id { get; set; } public string HomeTeam { get; set; } public string GuestTeam { get; set; } public DateTime GameTime { get; set; } } public List<CbaGame> GetCbaGameList() { var sql = "SELECT Id,HomeTeam,GuestTeam,GameTime FROM CbaGame ORDER BY GameTime DESC"; using var conn = new SqlConnection(_connectionString); conn.Open(); return conn.Query<CbaGame>(sql).ToList(); }
這段代碼中,我們通過一個名為CbaGame的類來映射CBA比賽的信息。我們使用了Query方法來查詢數據,並將結果填充到CbaGame對象中,最終返回一個List類型的數據。
2、使用Dapper實現clash管理系統
以下是使用Dapper實現clash管理系統的代碼示例:
public class Player { public int Id { get; set; } public string Name { get; set; } public string Position { get; set; } public int Number { get; set; } } public List<Player> GetPlayerList() { using var conn = new SqlConnection(_connectionString); conn.Open(); var sql = "SELECT Id,Name,Position,Number FROM Player ORDER BY Number ASC"; return conn.Query<Player>(sql).ToList(); }
這段代碼演示了如何使用Dapper獲取選手列表,我們使用了一個名為Player的類來映射選手的信息。我們先通過SqlConnection對象創建連接,然後使用Query方法執行查詢語句,並將返回的結果填充到Player對象中,最終返回一個List類型的選手數據。
3、使用Dapper操作cba總決賽
以下是使用Dapper操作cba總決賽的代碼示例:
public class CbaFinal { public int Id { get; set; } public string Winner { get; set; } public string RunnerUp { get; set; } public DateTime Year { get; set; } } public List<CbaFinal> GetFinalList() { var sql = "SELECT Id,Winner,RunnerUp,Year FROM CbaFinal ORDER BY Year DESC"; using var conn = new SqlConnection(_connectionString); conn.Open(); return conn.Query<CbaFinal>(sql).ToList(); }
這段代碼演示了如何使用Dapper獲取CBA總決賽列表,我們使用了一個名為CbaFinal的類來映射每一年的總決賽信息。我們同樣使用了Query方法來執行查詢語句,並將返回的結果填充到CbaFinal對象中,最終返回一個List類型的數據。
四、總結
本文從快速上手Dapper、Dapper高效的ORM框架、實際應用中的Dapper應用場景三個方面,對Dapper進行了詳細的闡述。Dapper不僅使用方便,而且高效快捷,是非常優秀的ORM框架之一。它可以幫助開發者極大地提高數據操作的效率和開發質量,更加方便地完成各種數據操作任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198671.html