我有两节课
public class Product
{
public Guid Id { get; set; }
public string ProductDetails { get; set; }
}
public class SpecialProductDetails
{
public Guid Product_Id { get; set; } // PK and FK to Product class
public string SpecialName { get; set; }
public string SpecialDescription { get; set; }
public virtual Product Product { get; set; }
}
SpecialProductDetails
与Product
类 1-1 映射并且是可选的。它共享相同的 PrimaryKey 和 ForeignKey。
在 Fluent API 中,我正在像这样映射这种关系(内部SpecialProductDetails
)
public SpecialProductDetails()
{
HasKey(p => p.Product_Id);
HasRequired(p => p.Product).WithMany().HasForeignKey(p => p.Product_Id).WillCascadeDelete(true);
}
尝试生成数据库时,这给了我这个错误
\tSystem.Data.Entity.Edm.EdmAssociationEnd::多重性在关系“SpecialProductDetails_Product_Source”中的角色“SpecialProductDetails_Product_Source”中无效。因为从属角色指的是关键属性,所以从属角色的多重性的上限必须是“1”。
如何在 EF Code First 上将列设置为 PK 和 FK?