在 Visual Studio .net 中进行逆向工程时映射关系时遇到问题
我使用继承:
public class Quiz : Component
{
public QuizQuestion rootQuestion { get; set; }
public override String getType() { return "quiz"; }
}
该属性rootQuestion
未在母类中指定,仅存在于子类中
Quiz
在我的 sqlserver 数据库中不作为表存在(数据库中只存在QuizQuestions
andComponent
表,(我的老师告诉我对这个项目的 java 部分这样做)。
但我希望子类 Quiz 有一个在我的数据库rootQuestion
中引用的属性。quizRootQuestion
所以这就是我所做的:
public class QuizMapper : EntityTypeConfiguration<Quiz>
{
public QuizMapper()
{
this.HasKey(t => t.ComponentID);
this.HasOptional(c => c.rootQuestion)
.WithMany().Map(m => m.MapKey("quizRootQuestionID"));
}
}
public class QuizQuestionMap : EntityTypeConfiguration<QuizQuestion>
{
public QuizQuestionMap()
{
// Properties
// Table & Column Mappings
this.HasKey(t => t.QuestionID);
this.ToTable("QuizQuestions");
this.Property(t => t.QuestionID).HasColumnName("questionID");
}
}
当我尝试在浏览器中运行时出现此错误:
列名“rootQuestion_QuestionID”无效。
我的数据库中的表:
零件:
componentId
quizRootQuestionID
TypeId(=discriminator)
测验问题
questionID
question
有人可以告诉我我做错了什么吗?