You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.4 KiB
26 lines
1.4 KiB
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<User>();
|
|
modelBuilder.Entity<User>().HasIndex(o => o.Name).IsUnique();
|
|
modelBuilder.Entity<Role>();
|
|
modelBuilder.Entity<UserRole>().HasOne(o => o.User).WithMany(o => o.UserRoles).HasForeignKey(o => o.UserId).OnDelete(DeleteBehavior.Cascade);
|
|
modelBuilder.Entity<UserRole>().HasOne(o => o.Role).WithMany(o => o.UserRoles).HasForeignKey(o => o.RoleId).OnDelete(DeleteBehavior.Cascade);
|
|
modelBuilder.Entity<UserRole>().HasIndex(o => new { o.UserId, o.RoleId }).IsUnique();
|
|
}
|
|
}
|
|
} |