gpt4 book ai didi

c# - Entity Framework 表拆分 : not in the same type hierarchy/do not have a valid one to one foreign key relationship

转载 作者:可可西里 更新时间:2023-11-01 03:10:02 24 4
gpt4 key购买 nike

我正在使用 Entity Framework 6 和代码优先方法,我希望将两个实体放在同一个表中。我做错了什么?

[Table("Review")]
public class Review
{
public int Id { get; set; }
public PictureInfo PictureInfo { get; set; }
public int PictureInfoId { get; set; }
}

[Table("Review")]
public class PictureInfo
{
[Key, ForeignKey("Review")]
public int ReviewId { get; set; }
public Review Review { get; set; }
}

我得到的错误:实体类型“PictureInfo”和“Review”不能共享表“Review”,因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系以及匹配的主键。

我做错了什么?

最佳答案

似乎问题在于关系被解释为一对 0..1 而不是一对一。

Review 端的外键 int PictureInfoId 不需要/被忽略,因此它的不可为空性并没有使关系的 Review 端成为必需的。删除这个不需要的键并将 [Required] 属性添加到 PictureInfo 导航属性解决了这个问题。

这是更正后的 Review 类。

[Table("Review")]
public class Review
{
public int Id { get; set; }
[Required]
public PictureInfo PictureInfo { get; set; }
}

关于c# - Entity Framework 表拆分 : not in the same type hierarchy/do not have a valid one to one foreign key relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454193/

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