我没有重命名,但是EF给了我多个身份列错误

时间:2018-09-09 15:05:00

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

所以我有这张已经用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有关!所以我试图再次运行更新数据库,它给了我这个错误:

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

我进行了搜索,所有答案都与重命名键列有关,但问题是我没有重命名!请给我解决这个问题的方法 p.s我是新手,请保持简单的答案,以便我理解

1 个答案:

答案 0 :(得分:0)

明确指定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; }
}

希望这可以解决您的问题。