entity-framework - 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 中我无法访问我的上下文。
解决方案
推荐阅读
- powershell - Powershell:在不尊重 Add-Type 的模块中使用类
- autohotkey - 剪贴板更改为新内容时通知
- ios - 等间距的水平正方形
- php - 如何解决无法检测到前端控制器,禁用PHP服务器错误=“Passthru script index.php does not exist under /Users
- javascript - 对象,带参数的函数
- java - 在 vs 代码中上传文件,但不在提示窗口中
- google-analytics - 使用 OAuth2 从前端获取 GA4 报告
- python - Python Boto3 DynamoDB - 如何解析映射值类型?
- c++ - 传递多个 POST 请求参数 C++ libcurl
- python - 命令提示符说文件存在时无法找到文件