gpt4 book ai didi

entity-framework - 主键与 Entity Framework Code First 的一对一关系

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

我在尝试使用代码优先创建一对一关系时遇到以下错误:System.Data.Edm.EdmAssociationEnd::多重性在关系“C001_Holding_Teste_C001_Holding”中的角色“C001_Holding_Teste_C001_Holding_Source”中无效。因为Dependent Role是指关键属性,所以Dependent Role的重数上限必须是1。我的实体定义如下:

[Table("C001_Holding", Schema = "Cad")]
public partial class C001_Holding
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int C001_Id { get; set; }

[MaxLength(16)]
public string C001_Codigo { get; set; }

[MaxLength(100)]
public string C001_Descricao { get; set; }
}

public class C001_Holding_Test
{
[Key]
public int C001_Id { get; set; }
[MaxLength(100)]
public string C001_TestInfo { get; set; }

[ForeignKey("C001_Id")]
public virtual C001_Holding C001_Holding { get; set; }
}

我不想使用 Fluent 来创建这些关系,有人知道为什么会这样吗?

谢谢。

最佳答案

可以将 ForeignKey 属性放在导航属性上,然后指定您想要作为外键的属性的名称(这就是您所做的)。或者您可以将它放在外键属性上,然后指定表示关系的导航属性的名称。这看起来像:

public class C001_Holding_Test
{
[Key]
[ForeignKey("C001_Holding")]
public int C001_Id { get; set; }

[MaxLength(100)]
public string C001_TestInfo { get; set; }

public virtual C001_Holding C001_Holding { get; set; }
}

出于某种原因,第二个选项有效,而第一个选项抛出错误。 (这对我来说感觉像是一个错误,因为两个选项应该代表相同的关系。或者实际上存在我看不到的语义差异......)

关于entity-framework - 主键与 Entity Framework Code First 的一对一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5339951/

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