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截图