这是我的模特:
[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
,其中包含ExternalId
但Webshop
为父级的{{1}}。这会导致以下错误:
违反PRIMARY KEY约束'PK_dbo.Products'。无法在对象'dbo.Products'中插入重复键。重复键值为(110)。
我做错了什么? (使用EF6)
答案 0 :(得分:1)
[Key]
注释应在Webshop_Id
而非WebshopEntity
上定义。