• 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 运行生成相应的数据库 。

  • 相关阅读:
    约瑟夫环问题——《算法》1.1.37的解法
    CLion配置libtorch找不到xxx.dll
    什么是SMTP?它是如何工作的?第1部分
    mysql 不输入密码进入mysql5.7
    C# 获取入参函数名
    Vue页面路由参数的传递和获取
    前端性能优化的常见方式
    pytorch笔记 GRUCELL
    Alibaba Java诊断工具Arthas查看Dubbo动态代理类
    2024.3.11 - DAY05_JAVA高级
  • 原文地址:https://blog.csdn.net/qq_40098572/article/details/134294274