尝试在Entity Framework中迁移数据库时遇到以下错误 .
指定的关联外键列'question_set_id'无效 . 指定的列数必须与主键列的数量匹配 .
我删除了原始主键QuestionSetId并创建了一个复合键关系 . 复合键关系中的列也映射到外键 . 我不确定是什么问题 .
这是关联的实体 .
public class QuestionSet
{
[Key, Column(Order = 1)]
public long TitleId { get; set; }
[ForeignKey("TitleId")]
public virtual Title Title { get; set; }
[Key, Column(Order = 0)]
public long ReviewCycleId { get; set; }
[ForeignKey("ReviewCycleId")]
public virtual ReviewCycle ReviewCycle { get; set; }
public virtual List<Question> Questions { get; set; }
}
DbContext有:
modelBuilder.Entity<QuestionSet>()
.HasMany(c => c.Questions)
.WithMany(c => c.QuestionSets)
.Map(x => x.ToTable("QUESTION_SET_QUESTION")
.MapLeftKey("question_set_id")
.MapRightKey("question_id"))
;
1 回答
QuestionSet
有两个键,但QuestionSet
的QuestionSet
只有一个键 .用以下内容替换它:
第一个键是
ReviewCycleId
(列的顺序0),第二个键是TitleId
(列的顺序1) .它应该解决问题,除非
Question
也有两个键 .