首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Database.Migrate方法

Database.Migrate方法
EN

Stack Overflow用户
提问于 2021-07-19 00:09:08
回答 1查看 47关注 0票数 0

我想为我的应用程序自动应用迁移,所以我使用了此方法

Database.Migrate()

将上下文的所有挂起迁移应用于数据库。如果数据库尚不存在,将创建该数据库。

因此,正如我所理解,当我运行我的应用程序时,它应该如下所示: 1-创建数据库如果它不存在2-更新数据库=>将迁移应用到数据库

但是当我运行我的项目时,什么都没有发生,我手动编写命令来应用数据库,这是一项工作,但我不知道问题出在哪里

这是我的代码

dbContext

代码语言:javascript
复制
using Microsoft.Extensions.Configuration;
using Microsoft.EntityFrameworkCore;
using brokerTest.Entites;

namespace brokerTest.Brokers.Sotrage
{
    public class StorageBroker : DbContext , IStorageBroker
    {
        private readonly IConfiguration configuration;
        public StorageBroker(IConfiguration configuration)
        {
            this.configuration = configuration;
            this.Database.Migrate();
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){

            var connectionString = this.configuration.GetConnectionString("DefaultConnection");
            optionsBuilder.UseSqlServer(connectionString);
        }

        public DbSet<User> Users { get; set; }
    }
}

startup.cs

代码语言:javascript
复制
services.AddDbContext<StorageBroker>();
            services.AddScoped<IStorageBroker, StorageBroker>();

appsettingfile.json

代码语言:javascript
复制
{
  "ConnectionStrings": {
    "DefaultConnection": "server=(localdb)\\MSSQLLocalDB;Database=testDb"
  },

安装了.NET 6、Microsoft.EntityFrameworkCore.Design 5.0.8和Microsoft.EntityFrameworkCore.SqlServer 5.0.8的软件包

EN

回答 1

Stack Overflow用户

发布于 2021-07-19 01:33:41

我发现dbContext类根本没有被调用,因为我没有用任何控制器或类注入它

在我将dbContext注入控制器类之后

代码语言:javascript
复制
 [ApiController]
    [Route("/home")]
    public class HomeController : Controller
    {
 private readonly IStorageBroker _storageBrodker;

        public HomeController(IStorageBroker storageBroker)
        {
            _storageBrodker = storageBroker;
        }

当我调用路由时,/home类被调用,然后应用迁移

我认为调用它是因为我在服务中注册了它,但我不知道在需要解析时调用它

在构建iHost object https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/applying?tabs=dotnet-core-cli#apply-migrations-at-runtime时,Sasan的注释提供了另一种从main执行此操作的方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68430899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档