src/Newdtek.Master.EntityFrameworkCore/EntityFrameworkCore/Seed/SeedHelper.cs
(完整代码) 1KBusing System;
using System.Transactions;
using Microsoft.EntityFrameworkCore;
using Abp.Dependency;
using Abp.Domain.Uow;
using Abp.EntityFrameworkCore.Uow;
using Abp.MultiTenancy;
using Newdtek.Master.EntityFrameworkCore.Seed.Host;
using Newdtek.Master.EntityFrameworkCore.Seed.Tenants;
namespace Newdtek.Master.EntityFrameworkCore.Seed
{
public static class SeedHelper
{
public static void SeedHostDb(IIocResolver iocResolver)
{
WithDbContext<MasterDbContext>(iocResolver, SeedHostDb);
}
public static void SeedHostDb(MasterDbContext context)
{
context.SuppressAutoSetTenantId = true;
// Host seed
new InitialHostDbBuilder(context).Create();
// Default tenant seed (in host database).
new DefaultTenantBuilder(context).Create();
new TenantRoleAndUserBuilder(context, 1).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>(MultiTenancySides.Host);
contextAction(context);
uow.Complete();
}
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。