EFCore PostgreSQL在.NET9生成迁移文件错误

EFCore PostgreSQL在.NET9生成迁移文件错误

如果在将.net 9的项目生成的迁移文件应用到数据库的时候出现

csharp 复制代码
System.InvalidOperationException: An error was generated for warning 'Microsoft.EntityFrameworkCore.Migrations.PendingModelChangesWarning': The model for context 'SiteDbContext' has pending changes. Add a new migration before updating the database. This exception can be suppressed or logged by passing event ID 'RelationalEventId.PendingModelChangesWarning' to the 'ConfigureWarnings' method in 'DbContext.OnConfiguring' or 'AddDbContext'.
   at Microsoft.EntityFrameworkCore.Diagnostics.EventDefinition`1.Log[TLoggerCategory](IDiagnosticsLogger`1 logger, TParam arg)
   at Microsoft.EntityFrameworkCore.Diagnostics.RelationalLoggerExtensions.PendingModelChangesWarning(IDiagnosticsLogger`1 diagnostics, Type contextType)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
An error was generated for warning 'Microsoft.EntityFrameworkCore.Migrations.PendingModelChangesWarning': The model for context 'SiteDbContext' has pending changes. Add a new migration before updating the database. This exception can be suppressed or logged by passing event ID 'RelationalEventId.PendingModelChangesWarning' to the 'ConfigureWarnings' method in 'DbContext.OnConfiguring' or 'AddDbContext'.

中文翻译错误就是:

警告"Microsoft.EntityFrameworkCore.Migrations"产生错误。PendingModelChangesWarning':上下文'SiteDbContext'的模型有挂起的更改。在更新数据库之前添加一个新的迁移。此异常可以通过传递事件ID 'RelationalEventId来抑制或记录。PendingModelChangesWarning'到'DbContext '中的'ConfigureWarnings'方法。onconfigurations '或'AddDbContext'。

当出现这个错误的时候其实我们可以通过配置日志进行忽略,下面是代码,

csharp 复制代码
public class SiteDbContext(DbContextOptions<SiteDbContext> options) : DbContext(options)
{
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        
        modelBuilder.ApplyConfigurationsFromAssembly(typeof(SiteDbContext).Assembly);
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);
        
        optionsBuilder.ConfigureWarnings(warnings =>
            warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
    }
}

主要是 optionsBuilder.ConfigureWarnings(warnings => warnings.Ignore(RelationalEventId.PendingModelChangesWarning));忽略掉这个错误,因为这个错误其实只是一个警告,但是新版本直接会报错。

相关推荐
Cincoze-Johnny1 小时前
Windows系统-应用问题全面剖析Ⅴ:德承工控机DA-1000在Windows操作系统下[安装.NET Framework]教程
.net
使者大牙1 小时前
【单点知识】 Python装饰器介绍
开发语言·数据库·python
数智工坊1 小时前
【操作系统-文件管理】
数据结构·数据库
oioihoii2 小时前
Oracle迁移KingbaseES实战
数据库·oracle
wniuniu_2 小时前
增加依据。。
服务器·网络·数据库
爱敲代码的小鱼2 小时前
事务核心概念与隔离级别解析
java·开发语言·数据库
Mr.徐大人ゞ2 小时前
6.用户及权限管理
数据库·postgresql
赵渝强老师2 小时前
【赵渝强老师】Oracle多租户容器数据库
数据库·oracle
IT技术分享社区2 小时前
GTID 结构升级 + JSON 视图强化,MySQL 9.6 创新版带来哪些性能提升?
数据库·程序员
阿杰 AJie3 小时前
MySQL 聚合函数
android·数据库·mysql