Cat*_*lin 3 entity-framework fluent-interface ef-code-first
我有两节课
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; }
}
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
这在尝试生成数据库时给出了这个错误
\ tSystem.Data.Entity.Edm.EdmAssociationEnd ::多重性在关系'SpecialProductDetails_Product_Source'中的角色'SpecialProductDetails_Product_Source'中无效.由于"从属角色"是指关键属性,因此从属角色的多重性的上限必须为"1".
如何在EF Code First上将列设置为PK和FK?
我很确定你已经解决了这个问题,但我遇到了同样的问题,我找到的解决方案是:
public SpecialProductDetails()
{
HasKey(p => p.Product_Id);
HasRequired(p => p.Product).WithOptional();
}
Run Code Online (Sandbox Code Playgroud)
"值得注意的是,当我们使用流畅的API映射一对一关联时,我们不需要像在使用HasForeignKey方法映射一对多关联时那样指定外键.支持主键上的一对一关联,它将自动在主键上创建数据库中的关系."
在http://weblogs.asp.net/manavi/associations-in-ef-4-1-code-first-part-3-shared-primary-key-associations之后
| 归档时间: |
|
| 查看次数: |
4034 次 |
| 最近记录: |