1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Logging;
- using MS.DbContexts.Mappings;
- using MS.Entities.AccountingService_Models;
- using MS.Entities.Models;
- using System;
- namespace MS.DbContexts
- {
- public class MSDbContext : DbContext
- {
- //Add-Migration InitialCreate
- //Update-Database InitialCreate
- public MSDbContext(DbContextOptions<MSDbContext> options)
- : base(options)
- {
- }
- //此处用微软原生的控制台日志记录,如果使用NLog很可能数据库还没创建,造成记录日志到数据库性能下降(一直在尝试连接数据库,但是数据库还没创建)
- //此处使用静态实例,这样不会为每个上下文实例创建新的 ILoggerFactory 实例,这一点非常重要。 否则会导致内存泄漏和性能下降。
- //此处使用了Debug和console两种日志输出,会输出到控制台和调试窗口
- public static readonly ILoggerFactory MyLoggerFactory = LoggerFactory.Create(builder => builder.AddDebug().AddConsole());
- public DbSet<NozzleAssignments> NozzleAssignments { get; set; }
- public DbSet<PosTrxes> posTrxes { get; set; }
- public DbSet<PosTrxMopsDto> posTrxMopsDtos { get; set; }
- public DbSet<NozzleTransaction> nozzleTransactions { get; set; }
- public DbSet<FuelDetailsDto> fuelDetailsDtos { get; set; }
- public DbSet<PumpVolumeSummary> pumpVolumeSummaries { get; set; }
- public DbSet<PumpTransactionSummary> pumpTransactionSummaries { get; set; }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- base.OnConfiguring(optionsBuilder);
- optionsBuilder.UseLoggerFactory(MyLoggerFactory);
- }
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- modelBuilder.ApplyConfiguration(new LogrecordMap());
- modelBuilder.ApplyConfiguration(new RoleMap());
- modelBuilder.ApplyConfiguration(new UserLoginMap());
- modelBuilder.ApplyConfiguration(new UserMap());
- modelBuilder.ApplyConfiguration(new CurrenciesMap());
- modelBuilder.ApplyConfiguration(new PosTrxesMap());
- modelBuilder.ApplyConfiguration(new PosTrxLineItemsMap());
- modelBuilder.Entity<Currencies>().HasNoKey();
- // modelBuilder.Entity<PosTrxes>()
- //.HasOne(p => p.Currency)
- //.WithOne()
- //.HasForeignKey<PosTrxes>(p => p.CurrencyId);
- modelBuilder.Entity<PosTrxes>()
- .Ignore(p => p.Currency);
- modelBuilder.Entity<PosItems>()
- .HasKey(p => p.Id);
- modelBuilder.Entity<PosTrxUnLock>()
- .HasKey(p => p.Id);
- modelBuilder.Entity<PosTrxMopsDto>()
- .HasNoKey(); // 标记为无主键实体
- modelBuilder.Entity<NozzleTransaction>()
- .HasNoKey(); // 标记为无主键实体
- modelBuilder.Entity<PumpTransactionSummary>()
- .HasNoKey(); // 标记为无主键实体
- modelBuilder.Entity<PumpVolumeSummary>()
- .HasNoKey(); // 标记为无主键实体
- modelBuilder.Entity<FuelDetailsDto>()
- .HasNoKey(); // 标记为无主键实体
- base.OnModelCreating(modelBuilder);
- }
- }
- }
|