using Microsoft.EntityFrameworkCore; namespace CockRoachDBEFCoreTest { public class MyDbContext : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { //数据库名只能为小写,否则报错为:database "postgres" does not exist var connStr = "User ID=root;Host=localhost;Port=26257;Database=testdb;CommandTimeout=120;"; optionsBuilder.UseNpgsql(connStr); //var connStr = "User ID=root;Host=localhost;Port=26257;Database=mytest;CommandTimeout=120;SslMode=Require;TrustServerCertificate=true;"; //optionsBuilder.UseNpgsql(connStr,o => o.ProvideClientCertificatesCallback(o => o.Add(new System.Security.Cryptography.X509Certificates.X509Certificate2("client.root.pk12")))); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(); modelBuilder.Entity().HasIndex(o => o.Name).IsUnique(); modelBuilder.Entity(); modelBuilder.Entity().HasOne(o => o.User).WithMany(o => o.UserRoles).HasForeignKey(o => o.UserId).OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity().HasOne(o => o.Role).WithMany(o => o.UserRoles).HasForeignKey(o => o.RoleId).OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity().HasIndex(o => new { o.UserId, o.RoleId }).IsUnique(); } } }