系列文章目录
文章目录
前言
Dapper 是一个高性能的 ORM 框架,可用于简化与数据库的交互。本文将详细介绍如何使用 Dapper 操作 PostgreSQL 数据库,包括连接配置、CRUD 操作以及示例代码。
一、准备工作
首先,确保你的项目中已经添加了 Dapper 和 Npgsql 包。你可以使用以下命令进行安装:
bash
dotnet add package Dapper
dotnet add package Npgsql
二、配置数据库连接
在 appsettings.json 中添加 PostgreSQL 数据库连接配置:
json
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=your_database;Username=your_username;Password=your_password;"
}
}
三、创建数据实体类
创建一个数据实体类,对应数据库中的表:
csharp
{
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
四、实现 CRUD 操作
在业务逻辑层中,通过 Dapper 来实现 CRUD 操作:
csharp
using Dapper;
using Microsoft.Extensions.Configuration;
using Npgsql;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace YourNamespace
{
public class ProductService
{
private readonly IConfiguration _config;
public ProductService(IConfiguration config)
{
_config = config;
}
private IDbConnection Connection => new NpgsqlConnection(_config.GetConnectionString("DefaultConnection"));
public List<Product> GetAllProducts()
{
using IDbConnection dbConnection = Connection;
dbConnection.Open();
return dbConnection.Query<Product>("SELECT * FROM products").ToList();
}
public Product GetProductById(int id)
{
using IDbConnection dbConnection = Connection;
dbConnection.Open();
return dbConnection.QueryFirstOrDefault<Product>("SELECT * FROM products WHERE id = @Id", new { Id = id });
}
public void InsertProduct(Product product)
{
using IDbConnection dbConnection = Connection;
dbConnection.Open();
dbConnection.Execute("INSERT INTO products (name, price) VALUES (@Name, @Price)", product);
}
public void UpdateProduct(Product product)
{
using IDbConnection dbConnection = Connection;
dbConnection.Open();
dbConnection.Execute("UPDATE products SET name = @Name, price = @Price WHERE id = @Id", product);
}
public void DeleteProduct(int id)
{
using IDbConnection dbConnection = Connection;
dbConnection.Open();
dbConnection.Execute("DELETE FROM products WHERE id = @Id", new { Id = id });
}
}
}
五、使用示例
在控制器中使用 ProductService 进行操作:
csharp
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using YourNamespace.Models;
using YourNamespace.Services;
namespace YourNamespace.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ProductController : ControllerBase
{
private readonly ProductService _productService;
public ProductController(IConfiguration config)
{
_productService = new ProductService(config);
}
// ... 编写 API 方法,调用 ProductService 中的相应方法
}
}
总结
通过本文,你已经学会如何使用 Dapper 操作 PostgreSQL 数据库。Dapper 提供了一种轻量级、高性能的数据访问方式,适用于各种类型的项目。希望本文对你在使用 Dapper 进行数据库操作时有所帮助。
如果你有任何问题或疑问,欢迎留言讨论。感谢阅读!