最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何在C#中使用Dapper ORM

 更新時(shí)間:2021年03月23日 11:25:33   作者:一線碼農(nóng)  
這篇文章主要介紹了如何在C#中使用Dapper ORM,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下

對(duì)象關(guān)系映射(ORM)這個(gè)概念已經(jīng)存在很長時(shí)間了,ORM的作用就是用來解決 編程領(lǐng)域的 object model 和關(guān)系數(shù)據(jù)庫中的 data model 的不匹配問題,Dapper 是一個(gè)開源的,輕量級(jí)的 ORM 框架,由 Stack Overflow 團(tuán)隊(duì)開發(fā),Dapper 和其他流行的ORM框架相比,最大的優(yōu)點(diǎn)就是羽翼級(jí)。

Dapper在最初開發(fā)時(shí)就考慮到了性能和易用性,它支持在 事務(wù),存儲(chǔ)過程 或者 批量插入時(shí)進(jìn)行靜態(tài)或者動(dòng)態(tài)的對(duì)象綁定。

使用 Visual Studio 安裝 Dapper ORM

要想了解 Dapper,從下面的步驟開始吧:

  • 打開 Visual Studio
  • 點(diǎn)擊 文件 -> 新建 -> 項(xiàng)目
  • 選擇 網(wǎng)站 -> ASP.Net Web Application
  • 給 web 項(xiàng)目指定一個(gè)名字
  • 然后選擇一個(gè) 空模板
  • 點(diǎn)擊 確定 生成 project

這樣我們就創(chuàng)建好了一個(gè) ASP.Net web application 項(xiàng)目

如果你已經(jīng)安裝了 NuGet,你可以通過 NuGet 去安裝 Dapper,做法就是在 解決方案窗口 下的 Project 上右鍵選擇 Manage NuGet Package ... 并且找到 Dapper,然后點(diǎn)擊安裝開啟這個(gè)安裝過程,一旦 Dapper 被成功安裝,你就可以愉快的玩起來了哈。

使用 Dapper ORM 進(jìn)行增刪查改

接下來我用 Dapper 寫一些簡單的 CURD 語句來操作數(shù)據(jù)庫,考慮如下的 IDG 數(shù)據(jù)庫,包含了一個(gè) Author 表,表的字段如下:

  • ID
  • FirstName
  • LastName

在使用Dapper時(shí),你需要針對(duì) 數(shù)據(jù)庫表 創(chuàng)建一個(gè)簡單的實(shí)體類(POCO class),下面定義了 Author 實(shí)體對(duì)應(yīng) IDB 數(shù)據(jù)庫的 Author 表。

 public class Author
 {
  public int Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
 }

使用 Dapper 的 Query() 擴(kuò)展方法,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的查詢?nèi)缓髮?shù)據(jù)填充到你的 object model 中,下面方法的作用就是從 Author 表中查詢所有的數(shù)據(jù),然后存儲(chǔ)到內(nèi)存中,最后返回一個(gè)集合給調(diào)用方。

 public List<Author> ReadAll()
 {
   using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString))
   {
    return db.Query<Author>
    (“Select * From Author”).ToList();
   }
 }

對(duì)了,為了能夠使用上 Dapper 的擴(kuò)展方法,你需要在代碼文件的頂部引入 Dapper 命名空間,如下圖:

下面的方法展示了如何從 Author table 表中查詢指定的記錄。

 public Author Find(int id) 
 {
  using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
  {
   return db.Query<Author>(“Select * From Author “ + 
   WHERE Id = @Id”, new { id }).SingleOrDefault();
  }
 }

Dapper 的 Execute() 方法可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的新增,修改,刪除,此方法返回一個(gè)整數(shù)值,該值表示在執(zhí)行查詢時(shí)受到的影響行數(shù)。

下面的方法展示了如何使用 Dapper 更新一條記錄。

 public int Update(Author author)
 {
  using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
  {
   string sqlQuery ="UPDATE Author SET FirstName = @FirstName, " +
   “ LastName = @LastName “ + “WHERE Id = @Id”;
   int rowsAffected = db.Execute(sqlQuery, author);
   return rowsAffected;
  }
 }

正如上面代碼所述,Update 方法返回了一個(gè)受影響的行數(shù),意味著這么多的記錄被修改,上面這段代碼只會(huì)有一條記錄被更新,所以說如果更新成功返回的就是 1。

在 Dapper ORM 中使用 存儲(chǔ)過程

為了能夠使用 Dapper 執(zhí)行存儲(chǔ)過程,在調(diào)用 Query 或者 Execute 方法時(shí)需要手工指定一下 CommandType 類型,下面的例子展示了如何使用 Dapper 執(zhí)行 存儲(chǔ)過程。

 public List<Author> Read()
 {
  using (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
  {
   string readSp ="GetAllAuthors";
   return db.Query<Author>(readSp, commandType: CommandType.StoredProcedure).ToList();
  }
 }

Dapper 框架也是支持事務(wù)操作的,如果有必要的話可以使用事務(wù),使用方式很簡單,你可以利用 BeginTransaction() 和 EndTransaction() 方法,其實(shí)和你使用 ADO.NET 的事務(wù)方式是一摸一樣的,將需要事務(wù)的語句代碼放置在 BeginTransaction 和 EndTransaction 之間即可。

Dapper ORM 真的是相當(dāng)羽翼級(jí) 并且非常方便使用,它不會(huì)為你生成任何sql語句,在這種情況下還能夠非常便捷的將查詢結(jié)果映射到你的 POCO 對(duì)象上,最🐂👃的是,它的執(zhí)行速度遠(yuǎn)超 Entity Framework,實(shí)際上,能和原生的 ADO.Net 媲美。

以上就是如何在C#中使用Dapper ORM的詳細(xì)內(nèi)容,更多關(guān)于C# 使用Dapper ORM的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#實(shí)現(xiàn)在PDF文檔中應(yīng)用多種不同字體

    C#實(shí)現(xiàn)在PDF文檔中應(yīng)用多種不同字體

    在PDF文檔中,可繪制不同字體樣式、不同語言的文字,可通過使用Standard字體、TrueType字體、CJK字體或者自定義(私有)等字體類型。本文將具體介紹實(shí)現(xiàn)的方法,需要的可以參考一下
    2022-01-01
  • C# 獲取進(jìn)程退出代碼的實(shí)現(xiàn)示例

    C# 獲取進(jìn)程退出代碼的實(shí)現(xiàn)示例

    這篇文章主要介紹了C# 獲取進(jìn)程退出代碼的實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • C#實(shí)現(xiàn)順序棧和鏈棧的代碼實(shí)例

    C#實(shí)現(xiàn)順序棧和鏈棧的代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于的C#實(shí)現(xiàn)順序棧和鏈棧的代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 詳解C#如何控制多線程同步執(zhí)行

    詳解C#如何控制多線程同步執(zhí)行

    使用Task類來控制多線程的同步執(zhí)行,可應(yīng)用于多任務(wù)分發(fā)執(zhí)行后,這篇文章主要為大家詳細(xì)介紹了C#如何通過Task類控制多線程同步執(zhí)行,感興趣的小伙伴可以了解下
    2023-12-12
  • C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計(jì)算文件夾大小

    C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計(jì)算文件夾大小

    這篇文章介紹了C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計(jì)算文件夾大小的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#打開php鏈接傳參然后接收返回值的關(guān)鍵代碼

    C#打開php鏈接傳參然后接收返回值的關(guān)鍵代碼

    這篇文章主要介紹了C#打開php鏈接傳參然后接收返回值的關(guān)鍵代碼,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • C#控制臺(tái)實(shí)現(xiàn)簡單飛行棋游戲

    C#控制臺(tái)實(shí)現(xiàn)簡單飛行棋游戲

    這篇文章主要為大家詳細(xì)介紹了C#控制臺(tái)實(shí)現(xiàn)簡單飛行棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼

    基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼

    這篇文章主要介紹了基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼,需要的朋友可以參考下
    2014-07-07
  • c#中如何去除字符串左邊的0

    c#中如何去除字符串左邊的0

    這篇文章主要介紹了c#中如何去除字符串左邊的0問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • c# Task任務(wù)的取消方式

    c# Task任務(wù)的取消方式

    文章介紹了如何在C#中使用CancellationTokenSource和CancellationToken來取消任務(wù),通過Task.Run方法和CancellationToken參數(shù),可以控制任務(wù)的執(zhí)行,并在需要時(shí)取消它們,文章還討論了CancellationToken參數(shù)的重要性
    2024-12-12

最新評(píng)論

长治县| 武城县| 合作市| 南充市| 金门县| 九江市| 古蔺县| 安国市| 沁源县| 尖扎县| 滕州市| 介休市| 桃江县| 永清县| 湟中县| 南开区| 修武县| 同德县| 读书| 上虞市| 建水县| 葫芦岛市| 民权县| 黔西县| 潞西市| 鸡泽县| 牡丹江市| 资溪县| 江山市| 闻喜县| 奎屯市| 玉田县| 甘泉县| 阜康市| 衡阳县| 尉氏县| 玉田县| 安龙县| 衢州市| 台江县| 桐城市|