EF Core为每个新迁移创建重复的更改

问题描述

我通过模型类和枚举设计了数据库,我将枚举用作状态值:


    public enum MyStatusEnum
     {
          Requested = 1,Validated = 2,Rejected = 3,Deleted = 4
     }

在我的班级中,我的PrimaryKey引用了枚举


     public class MyClientStatus
     {
          public MyStatusEnum MyClientStatusId { get; set; }
          // other stuff here ...
     }

然后我在枚举和要存储在数据库中的类型(字节)之间进行映射:


     modelBuilder.Entity<MyClientStatus>(entity =>
     {
         //map enum to byte for the primary MyClientStatusId 
         entity.Property(e => e.MyClientStatusId ).HasConversion<byte>();
    
         entity.Property(e => e.ConsumerStatusId).ValueGeneratedOnAdd();
    
         // seed MyClientStatus values
         entity.HasData(Enum.GetValues(typeof(MyStatusEnum)).Cast<MyStatusEnum>().Select(e => new MyClientStatus() { MyClientStatusId = e,Label = e.ToString() }));
     });

毕竟,我从dotnet ef migrations add InitialCreate 开始新的迁移,并很好地创建了具有所有依赖项的新.cs文件,例如:


    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.CreateTable(
            name: "MyClientStatus",columns: table => new
            {
                MyClientStatusId = table.Column<byte>(nullable: false)
             },constraints: table =>
                {
                    table.PrimaryKey("PK_ClientStatus",x => x.MyClientStatusId);
                });
          //other stuff here ...
    }

我更新了数据库,直到现在一切都很好,我的问题是当我更新其他课程或开始新的迁移时它总是检测到新的根据我的枚举和班级而改变?:


     public partial class SecondMigration: Migration
        {
           protected override void Up(MigrationBuilder migrationBuilder)
           {
               migrationBuilder.AlterColumn<byte>(
                name: "MyClientStatusId",table: "MyClientStatus",nullable: false,oldClrType: typeof(byte),oldType: "tinyint")
                .OldAnnotation("SqlServer:Identity","1,1");             
           }
        }

我没有找到为什么它会为每个新迁移准确地检测到这些更改(当然,我无法应用它,因为在我的数据库中,ClientStatus表已经像预期的那样用MyClientStatusId(PK,tinyint,not null)

你能用你的想法挑战我吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...