Dapper.NETDapper.NET入門


備註

什麼是Dapper?

Dapper是.Net的微型ORM,它擴展了您的IDbConnection ,簡化了查詢設置,執行和結果讀取。

我怎麼得到它?

常見任務

版本

筆記發布日期
1.50.0 core-clr / asp.net 5.0針對RTM構建 2016年6月29日
1.42.0 2015年5月6日
1.40.0 2015年4月3日
1.30.0 2014年8月14日
1.20.0 2014年5月8日
1.10.0 2012-06-27
1.0.0 2011-04-14

從Nuget安裝Dapper

在Visual Studio GUI中搜索:

工具> NuGet包管理器>管理解決方案包...(Visual Studio 2015)

選擇了Dapper的Visual Studio包管理器界面的屏幕截圖

或者在Nuget Power Shell實例中運行此命令以安裝最新的穩定版本

Install-Package Dapper
 

或者針對特定版本

Install-Package Dapper -Version 1.42.0
 

在C#中使用Dapper

using System.Data;
using System.Linq;
using Dapper;

class Program
{
    static void Main()
    {
        using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true"))
        {
            db.Open();
            var result = db.Query<string>("SELECT 'Hello World'").Single();
            Console.WriteLine(result);
        }
    }
}
 

在“ Using 塊中包裝連接將關閉連接

在LINQPad中使用Dapper

LINQPad非常適合測試數據庫查詢,並包含NuGet集成 。要在LINQPad中使用Dapper,請按F4打開“查詢屬性”,然後選擇“ 添加NuGet” 。搜索dapper dot net並選擇Add To Query 。您還需要單擊添加命名空間並突出顯示Dapper以在LINQPad查詢中包含擴展方法。

啟用Dapper後,您可以將語言下拉菜單更改為C#程序 ,將查詢結果映射到C#類,並使用.Dump()方法檢查結果:

void Main()
{
	using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true")){
		db.Open();
		var scalar = db.Query<string>("SELECT GETDATE()").SingleOrDefault();
		scalar.Dump("This is a string scalar result:");
		
		var results = db.Query<myobject>(@"
		SELECT * FROM (
		VALUES (1,'one'),
			(2,'two'),
			(3,'three')
		) AS mytable(id,name)");
		results.Dump("This is a table mapped to a class:");
	}
}

// Define other methods and classes here
class myobject {
	public int id { get; set; }
	public string name { get; set; }
}
 

執行程序時的結果如下所示:

LINQPad截圖