下面就为大家详细讲解一下 C# 中 Dapper 的使用教程。
什么是 Dapper?
Dapper 是一个轻量级 ORM(Object Relational Mapping)框架。它为 SQL Server、MySQL、Oracle 和 PostgreSQL 提供了一套高效处理 SQL 语句的方法。它采用 Object 与关系数据库之间的映射模型,使开发人员可以通过 C# 代码访问数据库。
如何在 C# 中使用 Dapper?
首先,我们需要在项目中引入 Dapper 包。可以手动下载 Dapper 包并将其添加到项目中,也可以通过 NuGet 包管理器添加 Dapper 包。
接着,我们需要在代码中指定数据库的连接字符串。比如:
string connectionString = "Server=localhost;Database=databaseName;User ID=myUsername;Password=myPassword;";
我们还需要引入 Dapper 的命名空间:
using Dapper;
using System.Data.SqlClient;
尽管 Dapper 支持多种数据库,但是我们在此举例使用 SQL Server 数据库。
Dapper 的基本用法
首先,我们来看一个简单的示例。假设有一张名为 Students 的表格,其中包含 id、name 和 age 三列。我们希望通过 Dapper 查询这个表格中的数据并输出到控制台。
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var students = connection.Query<Student>("SELECT * FROM Students");
foreach (var student in students)
{
Console.WriteLine($"ID: {student.Id} | Name: {student.Name} | Age: {student.Age}");
}
}
public class Student // 定义 Student 类
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
在以上代码中,我们首先创建了一个 SqlConnection 对象并打开了连接。接着,我们通过 connection.Query<>() 方法执行 SQL 语句,将结果映射到 List
在以上示例中,我们使用了 Query<>() 方法。除此之外,Dapper 还提供了 Execute<>()、Insert<>()、Update<>() 和 Delete<>() 方法,用于执行 SQL 命令。
示例2:参数化 SQL 查询
当我们需要查询特定的数据时,我们需要使用参数化 SQL 查询,以防止 SQL 注入攻击。参数化 SQL 查询通常使用 @ 符号来占位符。
下面是一个使用参数化 SQL 查询的示例,该示例查找年龄大于 18 岁的学生:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var students = connection.Query<Student>("SELECT * FROM Students WHERE Age > @Age", new { Age = 18 });
foreach (var student in students)
{
Console.WriteLine($"ID: {student.Id} | Name: {student.Name} | Age: {student.Age}");
}
}
在以上示例中,我们使用 @Age 占位符来代替要查询的年龄。接着,我们使用 new { Age = 18 } 创建了一个匿名类型,将需要查询的年龄值传递给了参数。最后,我们将该匿名类型作为第二个参数传递给 Query<>() 方法,以指示 Dapper 该如何将参数值映射到占位符。
结语
以上就是使用 Dapper 的基本流程和示例。当然,Dapper 也提供了更多高级用法,如事务处理、读取存储过程结果等。
希望本篇文章可以帮助 C# 开发人员更好地掌握 Dapper 的使用,提高数据库操作效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中Dapper的使用教程 - Python技术站