Zxd.Core/code/Zxd.EntityFramework/DncmsDbContext.cs

55 lines
2.3 KiB
C#

using DG.EntityFramework;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.Extensions.Logging;
namespace Zxd.EntityFramework
{
public class DncmsDbContext : DbContext
{
public DncmsDbContext(DbContextOptions<DncmsDbContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development")
{
var loggerFactory = new LoggerFactory();
loggerFactory.AddProvider(new EFLoggerProvider());
optionsBuilder.UseLoggerFactory(loggerFactory);
}
optionsBuilder.ConfigureWarnings(b => b.Ignore(CoreEventId.ContextInitialized));
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<WeworkExternalUserTotal>().HasNoKey();
modelBuilder.Entity<WeworkExternalUser>().HasKey(c => new { c.Appid, c.Userid, c.Externaluserid });
modelBuilder.Entity<ResourceFlowConfigFrom>()
.HasOne(x => x.ResourceFlowConfig)
.WithMany(x => x.ResourceFlowConfigFrom)
.HasForeignKey(x => x.ConfigId);
modelBuilder.Entity<ResourceFlowConfigTo>()
.HasOne(x => x.ResourceFlowConfig)
.WithMany(x => x.ResourceFlowConfigTo)
.HasForeignKey(x => x.ConfigId);
modelBuilder.Entity<ResourceFlowLog>()
.HasOne(x => x.ResourceFlowConfig)
.WithMany(x => x.ResourceFlowLog)
.HasForeignKey(x => x.ConfigId);
base.OnModelCreating(modelBuilder);
}
public DbSet<WeworkExternalUserTotal> WeworkExternalUserTotal { get; set; }
public DbSet<WeworkExternalUser> WeworkExternalUser { get; set; }
public DbSet<ResourceFlowConfig> ResourceFlowConfig { get; set; }
public DbSet<ResourceFlowConfigFrom> ResourceFlowConfigFrom { get; set; }
public DbSet<ResourceFlowConfigTo> ResourceFlowConfigTo { get; set; }
public DbSet<ResourceFlowDimission> ResourceFlowDimission { get; set; }
}
}