Asp.net core web api 项目中使用postgres

2024-03-06 16:37:07 浏览数 (3)

本文展示了如何在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请求来测试你的数据库操作。

0 人点赞