VberAdminEfModule.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Abp.EntityFrameworkCore.Configuration;
  2. using Abp.Modules;
  3. using Abp.Reflection.Extensions;
  4. using VberAdmin.EntityFrameworkCore;
  5. using VberAdmin.Seed;
  6. using VberZero;
  7. using VberZero.MultiTenancy;
  8. using VberZero.SqlServer;
  9. namespace VberAdmin;
  10. [DependsOn(
  11. typeof(VberAdminCoreModule),
  12. typeof(VberZeroEntityFrameworkModule))
  13. ]
  14. public class VberAdminEfModule : AbpModule
  15. {
  16. /* 使用它测试跳过 dbContext 注册,以便使用 EF Core 的内存数据库 */
  17. public bool SkipDbContextRegistration { get; set; }
  18. public override void PreInitialize()
  19. {
  20. IocManager.Register<IVzDbMigrator, VberAdminDbMigrator>();
  21. if (!SkipDbContextRegistration)
  22. {
  23. Configuration.Modules.AbpEfCore().AddDbContext<VberAdminDbContext>(options =>
  24. {
  25. if (options.ExistingConnection != null)
  26. {
  27. options.DbContextOptions.Configure(options.ExistingConnection);
  28. }
  29. else
  30. {
  31. options.DbContextOptions.Configure(options.ConnectionString);
  32. }
  33. });
  34. }
  35. }
  36. public override void Initialize()
  37. {
  38. IocManager.RegisterAssemblyByConvention(typeof(VberAdminEfModule).GetAssembly());
  39. }
  40. public override void PostInitialize()
  41. {
  42. }
  43. }