c# - 外键属性无效? (先 Entity Framework 代码)

标签 c# .net entity-framework ef-code-first entity-framework-migrations

<分区>

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

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

这是我的类(class)的样子:

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; }
}

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; }
}

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; }

}

我在这里做错了什么?还是我需要提供更多信息才能找出问题所在?

最佳答案

您需要向 SubscaleScore 添加一个外键属性。

public int SubscaleStatisticsId { get; set; }

教程请看这里:foreign keys

关于c# - 外键属性无效? (先 Entity Framework 代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881105/

相关文章:

c# - 当传递 keySelector 时,Linq to Entities OrderBy 会更早地评估查询

c# - 查找两个时区之间的所有时区偏移周期

c# - 事件处理程序位于与 MainWindow 不同的类中

.net - Azure 表复杂数据最佳实践

c# - 在 Entity Framework 中从数据库加载 N 条记录

.net - 具有长期运行对象上下文的 Entity Framework

c# - TcpListener.AcceptTcpClient 是否抛出不重要的异常?

C#、事件处理程序和线程

c# - 映射 IDataReader 时未调用 AutoMapper TypeConverter

.net - 开源BPM工具(如Activiti、bonita)和Windows Workflow Foundation有什么区别