gpt4 book ai didi

aspnetboilerplate - EF Core 迁移与 aspnetboilerplate 在哪里触发 context.Database.Migrate();

转载 作者:行者123 更新时间:2023-12-03 23:18:09 24 4
gpt4 key购买 nike

我需要确保我的应用程序本身能够升级他的数据库模型(应用迁移)

在 ABP 架构中,我应该在哪里调用 Migrate?

context.Database.Migrate();

由于这是对基础结构逻辑( Entity Framework 核心)的调用,因此应将其排除在域服务和应用程序服务之外。

提前致谢

最佳答案

我终于找到了一个可行的解决方案,适用于 abp 4.3
此代码允许您的应用程序在启动时应用迁移。

public override void PostInitialize()
{
var dbContextProvider = IocManager.Resolve<IDbContextProvider<ExtranetDbContext>>();
var unitOfWorkManager = IocManager.Resolve<IUnitOfWorkManager>();

using (var unitOfWork = unitOfWorkManager.Begin())
{
var context = dbContextProvider.GetDbContext(MultiTenancySides.Host);

//Removes actual connection as it has been enlisted in a non needed transaction for migration
context.Database.CloseConnection();
context.Database.Migrate();
}

if (!SkipDbSeed)
{
SeedHelper.SeedHostDb(IocManager);
}
}
详情 IUnitOfWorkManager可以找到 here .

关于aspnetboilerplate - EF Core 迁移与 aspnetboilerplate 在哪里触发 context.Database.Migrate();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45123604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com