0

Visual Studio .net でのリバース エンジニアリング中にリレーションシップのマッピングに問題があります

私は継承を使用します:

public class Quiz : Component  
{
    public QuizQuestion rootQuestion { get; set; }
    public override String getType() { return "quiz"; }
}

プロパティrootQuestionはマザークラスで指定されておらず、サブクラスにのみ存在します

Quiz私のsqlserverデータベースにはテーブルとして存在しません(データベースにはQuizQuestionsandComponentテーブルのみが存在します(私の先生は、このプロジェクトの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");
    }
}

ブラウザで実行しようとすると、次のエラーが表示されます:
Invalid column name 'rootQuestion_QuestionID'.

データベース内のテーブル:

成分:

  componentId                 
  quizRootQuestionID          
  TypeId(=discriminator)

クイズの質問

questionID                 
question

誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1