| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using Abp.Dependency;
- using Abp.Domain.Uow;
- using Abp.EntityFrameworkCore.Uow;
- using Microsoft.EntityFrameworkCore;
- using System.Transactions;
- using VberAdmin.EntityFrameworkCore;
- namespace VberAdmin.Seed;
- public static class SeedHelper
- {
- public static void SeedHostDb(IIocResolver iocResolver)
- {
- WithDbContext<VberAdminDbContext>(iocResolver, SeedHostDb);
- }
- public static void SeedHostDb(VberAdminDbContext context)
- {
- context.SuppressAutoSetTenantId = true;
- new InitialHostDbBuilder(context).Create();
- }
- private static void WithDbContext<TDbContext>(IIocResolver iocResolver, Action<TDbContext> contextAction)
- where TDbContext : DbContext
- {
- using var uowManager = iocResolver.ResolveAsDisposable<IUnitOfWorkManager>();
- using var uow = uowManager.Object.Begin(TransactionScopeOption.Suppress);
- var context = uowManager.Object.Current.GetDbContext<TDbContext>(Abp.MultiTenancy.MultiTenancySides.Host);
- contextAction(context);
- uow.Complete();
- }
- }
|