You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止EF Core Code First自动生成SQL Server视图代码

解决EF Core Code First自动生成SQL Server视图代码的问题

直接在视图实体的配置中添加ExcludeFromMigrations()方法,就能让EF Core迁移系统忽略该实体的DDL生成,同时运行时仍能正常识别视图映射,无需再来回注释Ignore代码。

修改后的OnModelCreating代码示例:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    // views
    modelBuilder.Entity<LogBudgetView>()
        .ToView("vwBudgetLog")
        .HasKey(x => x.Id)
        .ExcludeFromMigrations(); // 新增这一行,阻止迁移生成视图代码
    ...
}

补充说明

ExcludeFromMigrations()是EF Core 5及以上版本提供的API,它的作用是:

  • 让迁移生成器跳过该实体,不会为其生成创建视图的SQL语句
  • 运行时EF Core依然会将该实体与指定的SQL Server视图绑定,正常进行数据查询操作

如果你的项目有多个环境或需要更灵活的控制,也可以通过条件编译符号或环境变量来动态控制是否忽略实体,但ExcludeFromMigrations()是最直接简洁的方案。

内容的提问来源于stack exchange,提问作者John81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:50:22