首页 > 解决方案 > Entity Framework 2.0 仅创建第一个自动表

问题描述

我正在使用实体框架来保存信息。我有一个上下文,我有两个数据集

    public class AplicacaoContexto : DbContext
    {
        public AplicacaoContexto(DbContextOptions<AplicacaoContexto> options) : base(options)
        {
        }

        public DbSet<Empresa> Empresas { get; set; }
        public DbSet<TipoConteudo> TiposConteudo { get; set; }
    }

我的配置服务

public void ConfigureServices(IServiceCollection services)
        {
            var connection = Configuration["ConexaoMySql:MySqlConnectionString"];

            services.AddDbContext<AplicacaoContexto>(options =>
               options.UseMySql(connection)
           );


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

我正在创建 web 项目 web api,并为 Empresa 创建 2 个控制器,另一个为 TipoConteudo 创建。

当我向 Empresa 发送请求时,他可以创建表并保存信息。

但是,当我对 TipoConteudo 执行相同的操作时,它会返回以下错误:

MySqlException: Table 'dbplatformcourses.tipoconteudo' doesn't exist

为什么会这样?我怎样才能创建表?

控制器

 public class TipoConteudoController : ControllerBase
    {
        private readonly AplicacaoContexto _context;

        public TipoConteudoController(AplicacaoContexto context)
        {
            _context = context;
        }

... methods http
}

[编辑]

我能够使用 _context.Database.EnsureCreated () 命令创建表;但是我不知道使用此语句的正确位置在哪里。我将它添加到我的控制器中,我在哪里可以调用此指令?因为在我的 startup.cs 中我无法访问我的上下文。

标签: entity-frameworkentity-framework-core

解决方案


推荐阅读