推荐答案
// www.javascriptcn.com code example
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using Dapper;
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
private static string connectionString = "YourConnectionStringHere";
public static void Main()
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
// 查询操作
var users = connection.Query<User>("SELECT * FROM Users");
// 插入操作
var newUser = new User { Name = "John Doe", Age = 30 };
var insertQuery = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
connection.Execute(insertQuery, newUser);
// 更新操作
var updateQuery = "UPDATE Users SET Age = @Age WHERE Id = @Id";
connection.Execute(updateQuery, new { Age = 31, Id = 1 });
// 删除操作
var deleteQuery = "DELETE FROM Users WHERE Id = @Id";
connection.Execute(deleteQuery, new { Id = 1 });
}
}
}本题详细解读
1. Dapper 简介
Dapper 是一个轻量级的 ORM(对象关系映射)工具,它扩展了 IDbConnection 接口,提供了简单的方法来执行 SQL 查询并将结果映射到 C# 对象。Dapper 的主要优点是性能高,因为它直接使用原始的 SQL 查询,而不需要复杂的映射配置。
2. 安装 Dapper
在使用 Dapper 之前,需要通过 NuGet 安装 Dapper 包。可以使用以下命令安装:
Install-Package Dapper
3. 数据库连接
在使用 Dapper 进行数据库操作之前,首先需要创建一个数据库连接。通常使用 SqlConnection 类来连接 SQL Server 数据库。
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
// 数据库操作
}4. 查询操作
Dapper 提供了 Query<T> 方法来执行查询操作,并将结果映射到指定的对象类型 T。
var users = connection.Query<User>("SELECT * FROM Users");5. 插入操作
使用 Execute 方法可以执行插入操作。可以通过匿名对象或实体对象传递参数。
var newUser = new User { Name = "John Doe", Age = 30 };
var insertQuery = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
connection.Execute(insertQuery, newUser);6. 更新操作
更新操作与插入操作类似,使用 Execute 方法执行 SQL 更新语句。
var updateQuery = "UPDATE Users SET Age = @Age WHERE Id = @Id";
connection.Execute(updateQuery, new { Age = 31, Id = 1 });7. 删除操作
删除操作也是通过 Execute 方法执行 SQL 删除语句。
var deleteQuery = "DELETE FROM Users WHERE Id = @Id";
connection.Execute(deleteQuery, new { Id = 1 });8. 参数化查询
Dapper 支持参数化查询,可以有效防止 SQL 注入攻击。参数可以通过匿名对象或实体对象传递。
var user = connection.QueryFirstOrDefault<User>("SELECT * FROM Users WHERE Id = @Id", new { Id = 1 });9. 事务处理
Dapper 也支持事务处理。可以通过 IDbTransaction 接口来管理事务。
// www.javascriptcn.com code example
using (var transaction = connection.BeginTransaction())
{
try
{
connection.Execute(insertQuery, newUser, transaction);
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}通过以上步骤,你可以在 C# 中使用 Dapper 进行高效的数据库操作。