a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

在C#中如何使用Dapper詳解(譯)

2019-10-29 19:59:17
字體:
來源:轉載
供稿:網友

前言:

Dapper是一款輕量級ORM工具。如果你在小的項目中,使用Entity Framework、NHibernate 來處理大數據訪問及關系映射,未免有點殺雞用牛刀。你又覺得ORM省時省力,這時Dapper 將是你不二的選擇。

對象關系映射(ORM)已經被使用了很長時間,以解決在編程過程中對象模型與數據模型在關系數據庫中不匹配的問題。

Dapper是由Stack OverFlow團隊開發的開源的,輕量級的ORM.相比于其他的ORM框架,Dapper速度非???。

Dapper的設計考慮到了性能以及易用性。它支持使用事務,存儲過程或數據批量插入的靜態和動態對象綁定。

本文將給大家詳細介紹關于C#使用Dapper的相關內容,下面話不多說了,來一起看看詳細的介紹吧

下載和安裝Dapper:

要開始使用Dapper,請遵循以下步驟:

1.打開Visual Studio

2.點擊文件(File)->新建(New)->項目(Project)
3.從新建項目對話框中選擇Web->ASP.Net Web Application

4.為項目指定一個名稱

5.選擇空項目模板

6.點擊“確定”

以上將創建一個空的ASP.Net應用程序項目。

注:如果你已經安裝了NuGet,你可以使用NuGet來安裝Dapper->在解決方案資源管理器中選中項目,右擊項目選擇“管理Nuget包...”,找到Dapper進行安裝,成功之后就可以到下一步啦。

在.NET中使用Dapper進行CRUD操作:

現在讓我們寫一些代碼,使用Dapper對數據庫進行CRUD操作,首先創建一個名為“IDG”的數據庫,它包含一個名為“Author”的表,表中包含以下字段:ID,FirstName,LastName。

然后我們需要創建一個實體類(POCO類),下面是與數據庫IDG中Author表相對應的實體類Author:

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

Dapper中的擴展方法Query()能夠讓你從數據庫中檢索數據并填充到對象模型中。

下面的方法是從Author表中檢索所有記錄,并存儲到內存中,最后返回一個集合:

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

注意需要在程序中包含Dapper命名空間,才能使用Dapper:

using Dapper;

下面的方法演示了如何從Auhor表中檢索特定的一條記錄:

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()方法可以用于向數據庫中插入,更新,刪除數據。這個方法會返回一個整數,表示在執行查詢時受到影響的行數。

下面的方法演示了如何用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()方法返回受影響的行數,也就是已更新的記錄數,在本例中只會更新一條記錄,所以方法成功時將會返回1.

存儲過程在Dapper中的使用:

要使用Dapper處理存儲過程,需在調用Query()或者Exectue()方法時顯示地提到命令類型。下面的示例演示了如何使用Dapper來處理存儲過程:

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也支持事務,例如,如果需要我們可以使用事務操作,為此,你可以利用BeginTransaction() and EndTransaction()方法,就像通常在ADO.NET中處理事務一樣,然后,您需要在BeginTransaction()和EndTransaction()方法調用中編寫事務語句。

Dapper非常輕且使用起來非常簡單,它不會為你生成SQL,但是可以很容易地將查詢結果映射到POCOs(普通的舊CLR對象).最重要的是,你可以獲得比EntityFrameWork更快的執行速度,事實上,幾乎和ADO.NET一樣。

這是我翻譯的國外的一篇文章,旨在提升自己的英語水平,以及加深自己對知識點的積累,如果能幫助到一些小伙伴那就再好不過了。

原文鏈接:

https://www.infoworld.com/article/3025784/application-development/how-to-work-with-dapper-in-c.html

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩视频在线观看一区 | 欧美日韩视频 | 欧美乱码久久久久久蜜桃 | av.com在线| 久久人| 精品久久中文字幕 | 人妖 丝袜 另类 亚洲 | 国产干干干 | 亚洲乱码国产乱码精品精 | 天堂一区| 欧美成人小视频 | 国产在线观看一区二区三区 | 在线不卡一区 | 四虎免费影视 | 999在线观看精品免费不卡网站 | 在线观看三级视频 | 久久久免费精品视频 | 香蕉视频一级片 | 日韩久久一区二区 | 欧美视频二区 | caoporon| 国产视频亚洲精品 | 欧美亚洲综合久久 | 欧美视频在线免费 | 青青草久久 | 黄色a视频 | 久久久久久久成人 | 亚洲一区国产视频 | 中文字幕一区二区三区四区 | 午夜精品一区二区三区在线观看 | 国产成人午夜视频 | 国产精品三区在线 | 精品视频一区二区 | 国产在线观看91一区二区三区 | 亚洲成人在线视频播放 | 亚洲视频第一页 | 亚洲免费国产视频 | 亚洲一区二区三区日韩 | 亚洲三区在线观看 | 午夜精品网站 | 少妇久久久久 |