• ef core code first pgsql


    在使用efcode来操作pgsql的时候,总有些基础配置流程项目建立完之后后面就很少用,总是忘掉,写个文档记忆一下吧。基于net 6.0。

    1.创建一个mvc项目和一个EF类库

    2.在类库里面安装依赖dll 

    Microsoft.EntityFrameworkCore.Design

    需要添加的相关依赖及说明如下:

    • Npgsql.EntityFrameworkCore.PostgreSQL

          PostgreSQL数据提供的支持EF Core的基础类库,是通过EF Core使用PostgreSQL数据库的根本。

    • Npgsql.EntityFrameworkCore.PostgreSQL.Design

          使用Guid(对应Postgre数据的类型为uuid)类型的主键必须,int/long类型的主键不添加也没问题。

    • Microsoft.EntityFrameworkCore.Tools

          EF Core工具,CodeFirst数据库迁移相关操作必须。

      添加相关引用依赖的方式有多种,可以通过NuGet程序包管理器控制台的Install-Packege命令

    1. PM> Install-Package Npgsql.EntityFrameworkCore.PostgreSQL
    2. PM> Install-Package Npgsql.EntityFrameworkCore.PostgreSQL.Design
    3. PM> Install-Package Microsoft.EntityFrameworkCore.Tools

    3.创建类和上下文

    1. public class College
    2. {
    3. public int CollegeId { get; set; }
    4. public string Name { get; set; }
    5. public List Students { get; set; }
    6. }
    7. public class Student
    8. {
    9. public int StudentId { get; set; }
    10. public string Name { get; set; }
    11. public int CollegeId { get; set; }
    12. public College College { get; set; }
    13. }
    1. public class PostgreSQLContent : DbContext
    2. {
    3. public PostgreSQLContent(DbContextOptions options) : base(options)
    4. {
    5. }
    6. public DbSet<College> College { get; set; }
    7. public DbSet<Student> Student { get; set; }
    8. protected override void OnModelCreating(ModelBuilder modelBuilder)
    9. {
    10. modelBuilder.Entity()
    11. .HasMany(c => c.Students)
    12. .WithOne(s => s.College)
    13. .HasForeignKey(s => s.CollegeId);
    14. }
    15. }

    4.在MVC项目里面配置数据库连接

    5.使用 Add-Migration Inih 创建

    6.Update-Database Inih 运行生成相应的数据库 。

  • 相关阅读:
    前端领域的插件式设计
    xv6 中的进程切换:MIT6.s081/6.828 lectrue11:Scheduling 以及 Lab6 Thread 心得
    Primavera P6 Calendars 全局日历和项目日历Calendar
    编写HTTP协议代理的一些知识(源码)
    PSS:你距离NMS-free+提点只有两个卷积层 | 2021论文
    【3】Docker镜像相关命令
    JavaScript | 闭包
    Prometheus----3
    jenkins pipeline使用
    Kotlin的关键字 lateinit 和 lazy
  • 原文地址:https://blog.csdn.net/qq_40098572/article/details/134294274