(这些测试和错误是针对 EF 6.1.3 编写的)
第一次尝试
[Table("Review")]
public class Review
{
[Key]
public int Id { get; set; }
public PictureInfo PictureInfo { get; set; }
}
[Table("Review")]
public class PictureInfo
{
[Key]
public int Id { get; set; }
public Review Review { get; set; }
}
对于上述实体,我收到此错误:
无法确定类型之间关联的主体端。此关联的主体端必须使用关系流式 API 或数据注释显式配置。
第二次尝试
[Table("Review")]
public class Review
{
[Key]
public int Id { get; set; }
[Required]
public PictureInfo PictureInfo { get; set; }
}
[Table("Review")]
public class PictureInfo
{
[Key]
public int Id { get; set; }
[Required]
public Review Review { get; set; }
}
实体类型“Review”和“PictureInfo”不能共享表“Review”,因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系和匹配的主键。
第三次尝试
[Table("Review")]
public class Review
{
[Key]
public int Id { get; set; }
[Required, ForeignKey("Id")]
public PictureInfo PictureInfo { get; set; }
}
[Table("Review")]
public class PictureInfo
{
[Key]
public int Id { get; set; }
[Required, ForeignKey("Id")]
public Review Review { get; set; }
}
无法确定类型之间关联的主体端。此关联的主体端必须使用关系流式 API 或数据注释显式配置。
工作代码
[Table("Review")]
public class Review
{
[Key, ForeignKey("PictureInfo")]
public int Id { get; set; }
public PictureInfo PictureInfo { get; set; }
}
[Table("Review")]
public class PictureInfo
{
[Key, ForeignKey("Review")]
public int Id { get; set; }
public Review Review { get; set; }
}