具有组合键的实体框架:违反PRIMARY KEY约束

时间:2015-03-27 08:13:28

标签: c# asp.net-mvc entity-framework entity-framework-6

这是我的模特:

[Key, Column(Order=1)] // composite key with ExternalId. WebshopId+ExternalId must be unique
[ForeignKey("Webshop_Id")]
public virtual Webshop WebshopEntity
{
    get { return _Webshop; }
    set { _Webshop = value; }
}

[NotMapped]
private Webshop _Webshop;

public int Webshop_Id { get; set; }

[Key, Column(Order = 2)]
[MinLength(1, ErrorMessage = "ExternalId must be atleast 1 character")]
public virtual string ExternalId { get; set; }

Product应该有一个Webshop的复合主键(它的父级)和ExternalId

现在我的数据库已填满,我正在添加一个新的Product,其中包含ExternalIdWebshop为父级的{{1}}。这会导致以下错误:

  

违反PRIMARY KEY约束'PK_dbo.Products'。无法在对象'dbo.Products'中插入重复键。重复键值为(110)。

我做错了什么? (使用EF6)

1 个答案:

答案 0 :(得分:1)

[Key]注释应在Webshop_Id而非WebshopEntity上定义。