【问题标题】:Column names in each table must be unique. Column name 'Prefix' in table 'dbo.AspNetUsers' is specified more than once每个表中的列名必须是唯一的。表“dbo.AspNetUsers”中的列名“前缀”被指定了多次
【发布时间】:2016-06-06 01:45:54
【问题描述】:

每次我尝试更新数据库时都会收到此错误消息。这很奇怪,因为当我在迁移中查看我的表时,它只存在一次。

CreateTable(
            "dbo.AspNetUsers",
            c => new
            {
                Id = c.String(nullable: false, maxLength: 128),
                Prefix = c.String(nullable:true),
                FirstName = c.String(nullable:false,maxLength:250),
                LastName = c.String(nullable:false,maxLength:250),
                Suffix = c.String(nullable: true),
                Email = c.String(maxLength: 250),
                EmailConfirmed = c.Boolean(nullable: false),
                PasswordHash = c.String(),
                SecurityStamp = c.String(),
                PhoneNumber = c.String(),
                PhoneNumberConfirmed = c.Boolean(nullable: false),
                TwoFactorEnabled = c.Boolean(nullable: false),
                LockoutEndDateUtc = c.DateTime(),
                LockoutEnabled = c.Boolean(nullable: false),
                AccessFailedCount = c.Int(nullable: false),
                UserName = c.String(nullable: false, maxLength: 256),
            })
            .PrimaryKey(t => t.Id)
            .Index(t => t.UserName, unique: true, name: "UserNameIndex");

如果您有任何想法,请告诉我。

提前致谢。

【问题讨论】:

    标签: asp.net entity-framework entity-framework-migrations


    【解决方案1】:

    在实体框架中有 4 种数据库初始化策略 1)创建数据库如果不存在 2)DropCreateDatabaseIfModelChanges 3)DropCreateDatabaseAlways 4)自定义数据库初始化器 因为我认为你选择了第一个策略(CreateDatabaseIfNotExists),你可以移动第二个策略(DropCreateDatabaseIfModelChanges)。

    【讨论】:

      【解决方案2】:

      其实我需要做的是:

      块引用 运行带有 -IgnoreChanges 标志的 Add-Migrations 命令。然后再次运行 Update-Database。

      看到这个帖子:

      Column names in each table must be unique. Column name 'StripeRecipientId' in table 'dbo.Foos' is specified more than once

      【讨论】:

        【解决方案3】:

        如果它像您所说的“已经存在一次”,那么您可能需要更改表而不是创建它。你不能创造已经存在的东西吗?

        除非我读错了。

        【讨论】:

          猜你喜欢
          • 2015-12-27
          • 1970-01-01
          • 1970-01-01
          • 2022-12-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-03
          • 1970-01-01
          相关资源
          最近更新 更多