本文展示了如何在asp.net core web api 中使用postgres数据库。
在开始之前,你可以通过visual studio中基于asp.net web api项目模板生成一个web api 项目。选择默认配置就行。
在ASP.NET Core Web API项目中使用PostgreSQL数据库涉及到几个关键步骤。
1. 安装必要的NuGet包
首先,你需要在你的ASP.NET Core项目中安装Npgsql包,这是一个.NET的数据提供程序,用于与PostgreSQL数据库交互。
使用NuGet包管理器控制台运行以下命令来安装:
代码语言:shell复制Install-Package Npgsql
2. 配置数据库连接字符串
在appsettings.json文件中,添加PostgreSQL数据库的连接字符串。例如:
代码语言:json复制{
"ConnectionStrings": {
"DefaultConnection": "Host=myserver;Database=mydb;Username=mylogin;Password=mypassword;"
},
// 其他配置...
}
3. 创建数据库上下文
创建一个继承自DbContext的类,用于表示你的数据库上下文。这个类将包含你的数据库集合(即表)的DbSet属性。
代码语言:C#复制using Microsoft.EntityFrameworkCore;
public class MyDatabaseContext : DbContext
{
public MyDatabaseContext(DbContextOptions<MyDatabaseContext> options) : base(options)
{
}
public DbSet<MyEntity> MyEntities { get; set; }
// 其他DbSet属性...
}
4. 在Program.cs源文件中配置数据库上下文
在Program.cs 的Program类Main方法中添加如下的注册依赖项的语句以,配置你的数据库上下文以使用Npgsql作为数据库提供程序,并注入到依赖注入容器中。
代码语言:C#复制 // 其他服务配置...
services.AddDbContext<MyDatabaseContext>(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
// 其他服务配置...
以上如果是在.net 6以下版本(例如 .net core 3.1等),请在Startup.cs的ConfigureServices方法中配置。
5. 创建数据库迁移
使用Entity Framework Core的迁移功能来创建数据库表。在包管理器控制台中运行以下命令:
代码语言:shell复制Add-Migration InitialCreate
Update-Database
6. 在控制器中使用数据库上下文
在你的Web API控制器中,注入数据库上下文,并使用它来执行CRUD操作。例如:
代码语言:C#复制using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
[ApiController]
[Route("[controller]")]
public class MyEntitiesController : ControllerBase
{
private readonly MyDatabaseContext _context;
public MyEntitiesController(MyDatabaseContext context)
{
_context = context;
}
// GET: api/myentities
[HttpGet]
public async Task<IActionResult> GetMyEntities()
{
return Ok(await _context.MyEntities.ToListAsync());
}
// POST: api/myentities
[HttpPost]
public async Task<IActionResult> CreateMyEntity([FromBody] MyEntity myEntity)
{
_context.Add(myEntity);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetMyEntity), new { id = myEntity.Id }, myEntity);
}
// 其他CRUD操作...
}
7. 运行和测试你的Web API
如果项目模板是默认配置,那么项目启动后会自动打开浏览器,进入swagger页面。
现在,你可以运行你的ASP.NET Core Web API项目,并通过HTTP请求来测试你的数据库操作。