【问题标题】:I didn't rename but EF is giving me a multiple identity column error我没有重命名,但 EF 给了我一个多重身份列错误
【发布时间】:2018-09-09 15:04:59
【问题描述】:

所以我有这个已经用 EF 填充和构建的表

public class Item
{
    public int Id { get; set; }
    public string Description { get; set; }

    //ForeignKey from SubCats table
    public int? SubCatId { get; set; }
    public SubCat SubCat { get; set; }

    public byte? Image { get; set; }

    public int PointId { get; set; }
    public int Points { get; set; }
}

无论如何,我将我的数据库与 sql server management studio 连接起来,并且 EF 给了我一个错误,即我的所有迁移都处于挂起状态,即使我已经在每次迁移时都更新了数据库,但我想这与 sql server management studio 有关!所以我尝试再次运行 update-database,它给了我这个错误:

为表“项目”指定了多个标识列。每个表只允许一个标识列。

我搜索了它,所有答案都是关于重命名键列,但问题是我没有重命名任何东西!请给我一个解决这个问题的方法 p.s 我是新手,所以请保持您的答案简单,以便我理解

【问题讨论】:

  • 查看您的PointIdPointsPointIdPoints的外键吗?请澄清这一点。

标签: sql-server asp.net-mvc entity-framework


【解决方案1】:

明确指定Item的主键和外键如下:

public class Item
{
     [Key]
     [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
     public int Id { get; set; }
     public string Description { get; set; }

     [ForeignKey("SubCat")]
     public int? SubCatId { get; set; }
     public SubCat SubCat { get; set; }

     public byte? Image { get; set; }

     [ForeignKey("Point")]
     public int PointId { get; set; }
     public Point Point { get; set; }
}

希望这能解决您的问题。

【讨论】:

    猜你喜欢
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2013-06-18
    • 1970-01-01
    • 2022-01-09
    • 2013-10-16
    • 2019-09-02
    相关资源
    最近更新 更多