1、如果库里已存在数据库
(1)、appsettings.json下添加连接字符串
"ConnectionStrings": { "Postgresql": "User ID=postgres;Password=xxx;Host=localhost;Port=5432;Database=xx" },
(1)、通过NuGet安装Entity Framework并更新文件project.json中“tools”区
Install-Package Npgsql.EntityFrameworkCore.Postgresql Install-Package Npgsql.EntityFrameworkCore.Postgresql.Design Install-Package Microsoft.EntityFrameworkCore.Tools -Pre
(2)、NuGet包管理器运行命令
Scaffold-DbContext “Server=localhost;Database=xx;User ID=postgres;Password=wantgirl;” Npgsql.EntityFrameworkCore.Postgresql -OutputDir Models
(4)、startup下注入连接字符串
services.AddDbContext<chdocContext>(option => option.UseNpgsql(Configuration.GetConnectionString("Postgresql")));
2、如果表里没有库
using System; using System.ComponentModel.DataAnnotations; namespace TodoApi.Models { public class TodoItem { /// <summary> /// 匹配编号 /// </summary> [Key] public Guid Gid { get; set; } /// <summary> /// 上传文件名 /// </summary> public string UploadFileName { get; set; } /// <summary> /// 上传文件路径 /// </summary> public string UploadFilePath { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime CreateTime { get; set; } /// <summary> /// 状态 0:匹配中 1:匹配完成未下载 2:匹配完成已下载 /// </summary> public int Status { get; set; } /// <summary> /// 下载文件名 /// </summary> public string DownloadFileName { get; set; } /// <summary> /// 下载文件路径 /// </summary> public string DownloadFilePath { get; set; } /// <summary> /// 下载时间 /// </summary> public DateTime? DownloadTime { get; set; } /// <summary> /// 下载次数 /// </summary> public int DownLoadCount { get; set; } } }
(2)、NuGet包管理器执行命令(也可以直接添加引用)
Install-Package Npgsql.EntityFrameworkCore.Postgresql Install-Package Npgsql.EntityFrameworkCore.Postgresql.Design Install-Package Microsoft.EntityFrameworkCore.Tools
(3)、将字符串写入appsetting.json
"ConnectionStrings": { "Postgresql": "User ID=postgres;Password=postgres;Host=localhost;Port=5432;Database=mydatabase" },
using Microsoft.EntityFrameworkCore; namespace TodoApi.Models{ public class TodoContext :DbContext { public TodoContext(DbContextOptions<TodoContext> options):base(options){ } public DbSet<TodoItem> TodoItems {get;set;} protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); } } }
(5)修改startup
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<TodoContext>(option => option.UseNpgsql(Configuration.GetConnectionString("Postgresql"))); }
(6)、NuGet包管理器执行命令
Add-Migration TodoItem Update-Database
(7)、添加控制器
using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc; using TodoApi.Models; using System; namespace TodoApi.Controllers { [Route("api/[controller]")] [ApiController] public class TodoController : ControllerBase { private readonly TodoContext _context; public TodoController(TodoContext context) { _context = context; if (_context.TodoItems.Count() == 0) { // Create a new TodoItem if collection is empty, // which means you can't delete all TodoItems. _context.TodoItems.Add(new TodoItem { UploadFileName = "Item1" }); _context.SaveChanges(); } } [HttpGet] public ActionResult<List<TodoItem>> GetAll() { return _context.TodoItems.ToList(); } [HttpGet("{gid}", Name = "GetTodo")] public ActionResult<TodoItem> GetById(Guid gid) { var item = _context.TodoItems.Find(gid); if (item == null) { return NotFound(); } return item; } } }
END
网址方法很多我也总结了下
参考博客
(23条消息) 全栈练习一:asp.net core 2.1 webapi连接postgrest数据库从零开始_henjuewang的博客-CSDN博客
ASP.NET Core 对接已存在的PostgreSQL数据库 | 春小麦 (firstsolver.com)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。