答案:在C#中使用Dapper需先安装NuGet包,再通过IDbConnection建立数据库连接,定义与表对应的实体类,利用Query等方法执行sql查询,支持参数化防止注入,实现高效数据操作。
在C#中使用Dapper进行数据库查询非常简单高效。Dapper是一个轻量级的ORM(对象关系映射)工具,能让你用少量代码快速执行SQL操作,同时保持接近原生ADO.net的性能。
1. 安装Dapper
Dapper以NuGet包形式提供,需先安装到项目中:
- 通过NuGet包管理器搜索并安装 Dapper
- 或使用包管理器控制台运行命令:Install-Package Dapper
2. 建立数据库连接
Dapper基于IDbConnection接口工作,可以直接使用 SqlConnection、mysqlConnection 等。
示例(SQL Server):
using (var connection = new SqlConnection("Server=.;Database=TestDB;Integrated Security=true;")) { connection.Open(); // 执行查询 }
3. 定义实体类
创建一个与数据库表字段对应的c#类:
public class User { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } }
确保属性名与数据库列名匹配(或使用别名)。
4. 使用Query方法执行查询
Dapper扩展了IDbConnection,提供 Query、QueryFirst、QueryFirstOrDefault、Execute 等方法。
基本查询示例:
var users = connection.Query<User>("SELECT * FROM Users"); foreach (var user in users) { Console.WriteLine($"{user.Id}: {user.Name} - {user.Email}"); }
带参数的查询(防止sql注入):
var user = connection.QueryFirstOrDefault<User>( "SELECT * FROM Users WHERE Id = @Id", new { Id = 1 });
@Id 是参数占位符,new { Id = 1 } 提供参数值。
5. 其他常用查询方式
- QuerySingle:返回恰好一条记录,否则抛异常
- QueryFirstOrDefault:返回第一条或null
- Execute:用于插入、更新、删除操作
例如执行更新:
int rowsAffected = connection.Execute( "UPDATE Users SET Name = @Name WHERE Id = @Id", new { Name = "Tom", Id = 1 });
基本上就这些。引入Dapper后,只需打开连接,写SQL,调用Query或Execute即可完成操作,无需复杂配置。