外键属性无效?(实体框架代码优先)

use*_*442 2 .net c# entity-framework ef-code-first ef-migrations

我首先使用实体​​框架代码并添加了一个类,该类具有类的列表,其中类还必须具有另一个类列表,但是当我尝试通过迁移对数据库进行更新时,我得到:

SubscaleScore类型属性"SubscaleStatistics"上的ForeignKeyAttribute无效.在依赖类型"SubscaleScore"上找不到外键名称"SubscaleStatisticsId".Name值应该是以逗号分隔的外键属性名称列表.

这是我的课程的样子:

public class ExamStatistics : StatisticsData
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required]
    public int TestId { get; set; }
    public IList<SubscaleStatistics> Subscales { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
public class SubscaleStatistics
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int SubscaleStatisticsId { get; set; }
    public int TestId { get; set; }
    public int SubscaleNumber { get; set; }
    public int ExamStatisticsId { get; set; }

    [ForeignKey("ExamStatisticsId")]
    public virtual ExamStatistics ExamStatistics { get; set; }

    public IList<SubscaleScore> SubscaleScores { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
public class SubscaleScore
{
    public int TestId { get; set; }
    public int Subscale { get; set; }
    public double Score { get; set; }
    public int SubscaleId { get; set; }

    [ForeignKey("SubscaleStatisticsId")]
    public virtual SubscaleStatistics SubscaleStatistics { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?或者我是否需要提供更多信息以解决问题?

And*_*rew 6

您需要向SubscaleScore添加外键属性.

public int SubscaleStatisticsId { get; set; }
Run Code Online (Sandbox Code Playgroud)

看到这里的教程:外键