gpt4 book ai didi

entity-framework - EF 代码优先 : Primary Key same as Foreign Key

转载 作者:行者123 更新时间:2023-12-04 07:27:46 25 4
gpt4 key购买 nike

我有两个类(class)

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; }
}

SpecialProductDetailsProduct 类 1-1 映射并且是可选的。它共享相同的主键和外键。

在 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”中无效。因为Dependent Role是指关键属性,所以Dependent Role的重数上限必须是'1'。

如何在 EF Code First 上将列设置为 PK 和 FK?

最佳答案

我很确定你已经解决了这个问题,但我遇到了同样的问题,我找到的解决方案是:

 public SpecialProductDetails()
{
HasKey(p => p.Product_Id);
HasRequired(p => p.Product).WithOptional();
}

“值得注意的是,当我们使用 Fluent API 映射一对一关联时,我们不需要像使用 HasForeignKey 方法映射一对多关联时那样指定外键。由于 EF 只支持一对一的主键关联,它会自动在数据库中创建主键上的关系。”

http://weblogs.asp.net/manavi/associations-in-ef-4-1-code-first-part-3-shared-primary-key-associations之后

关于entity-framework - EF 代码优先 : Primary Key same as Foreign Key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com