У меня есть проблема, отображающие отношения в то время как обратное проектирование в Visual Studio .NETнедопустимого имени столбца в .net при использовании наследования
Я использую наследование:
public class Quiz : Component
{
public QuizQuestion rootQuestion { get; set; }
public override String getType() { return "quiz"; }
}
свойство rootQuestion
не указано в motherclass, она существует только в подклассе
Quiz
не существует в виде таблицы в моей базе данных SQLServer (только таблица QuizQuestions
и Component
существует в databas e, (мой учитель сказал мне сделать это так: 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)
QuizQuestions
questionID
question
Может кто-то пожалуйста, скажите мне, что я делаю неправильно?
да, я использую Entity Framework 5. структуру: учебный курс имеет разные компоненты, 1 из них - викторина – PrisonMike