gpt4 book ai didi

c# - 外键组件 'X' 不是类型 'Y' 的声明属性。验证它没有被明确排除

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:03 26 4
gpt4 key购买 nike

这似乎是一个很常见的问题,但我已经尝试了一切,看不到任何问题。

这个问题好像是今天才开始的。完整错误信息:

“外键组件‘AllocationID’不是‘PortfolioSection’类型的声明属性。验证它没有被明确排除在模型之外,并且它是一个有效的原始属性。”

型号:

public class PortfolioSection 
{
.... some stuff

public int AllocationID { set; get; }

[ForeignKey("AllocationID")]
public virtual Allocation Allocation { get; set; }

.... More stuff

}
public class Allocation
{

... Some stuff



[ForeignKey("PortfolioSections")]
public int AllocationID { set; get; }


public string Name { set; get;}


public string Color { set; get; }


public int SortOrder { set; get; }




public virtual List<PortfolioSection> PortfolioSections { get; set; }


}

我没有做任何奇怪的配置,我可以看到会导致这个问题。难道Allocation的key是AllocationID而不仅仅是ID?

到目前为止,我已经尝试过:1. 移除 PorfolioSection 到 Allocation 的导航属性。2. 将 ForiegnKey 属性放在 AllocationID (ForeignKey("Allocation")) 而不是导航属性上。

最佳答案

您有一些放错地方的属性。如果你改变:

[ForeignKey("PortfolioSections")]
public int AllocationID { set; get; }

收件人:

[Key]
public int AllocationID { set; get; }

那么这应该可以正常工作。问题是您将键(AllocationID 是我假设的主键)声明为 PortfolioSections 表的外键。

关于c# - 外键组件 'X' 不是类型 'Y' 的声明属性。验证它没有被明确排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30763732/

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