2016-12-05 32 views
0

に新しいオブジェクトを追加することはできません私は、私は2つのモデルを持っているデータベース

public Guid Create(NewQuizViewModel quizToCreate) 
    { 
     Stage currentStage = _stageService.GetStageById(quizToCreate.StageId); 

     List<Question> newQuestions = new List<Question>(); 

     foreach (var question in quizToCreate.Questions) 
     { 
      Question newQuestion = new Question(); 
      newQuestion.QuestionId = Guid.NewGuid(); 
      newQuestion.QuestionContent = question.QuestionContent; 
      newQuestion.Answers = question.Answers; 
      newQuestion.CorrectAnswer = question.CorrectAnswer; 
      newQuestions.Add(newQuestion); 
     } 

     Quiz quizToDatabase = new Quiz() 
     { 
      Questions = newQuestions, 
      Stage = currentStage, 
     }; 

     _dbContext.Quizzes.Add(quizToDatabase); 
     _dbContext.SaveChanges(); 

     return quizToDatabase.StageId; 
    } 

あなたがコードで間違っているものを私に伝えることができますか?クイズをデータベースに追加できません。ステージIDは空です。すべてがOKであるシード方法で Adding to database

:私は、行にエラー

_dbContext.Quizzes.Add(quizToDatabase); 

スクリーンショットを持っています。

var quizzes = new List<Quiz>() 
     { 
      new Quiz() 
      { 
       Questions = new List<Question>() 
       { 
        new Question() 
        { 
         QuestionContent = "Just mark 1st", 
         Answers = new List<string>(4) 
         { 
          "First", "Second", "Third", "Fourth" 
         }, 
         CorrectAnswer = CorrectAnswer.FirstAnswer 
        }, 
        new Question() 
        { 
         QuestionContent = "Just mark 3rd", 
         Answers = new List<string>(4) 
         { 
          "First", "Second", "Third", "Fourth" 
         }, 
         CorrectAnswer = CorrectAnswer.ThirdAnswer 
        }, 
        new Question() 
        { 
         QuestionContent = "Just mark 4th", 
         Answers = new List<string>(4) 
         { 
          "First", "Second", "Third", "Fourth" 
         }, 
         CorrectAnswer = CorrectAnswer.FourthAnswer 
        } 
       }, 
       Stage = context.Stages.FirstOrDefault(c => c.Name=="Stage Example") 

      } 
     }; 

     quizzes.ForEach(c => context.Quizzes.Add(c)); 
     context.SaveChanges(); 

私は違いを見ることはできません。助けてくれてありがとう

+0

ステージ 'currentStage = _stageService.GetStageById(quizToCreate.StageId);'ステージを見つけるか? – user1429080

+0

はい、画像オブジェクトquizToDatabaseにStageはありますが、StageIdはありません – Dre

+2

エラーは何ですか? *質問*に完全な例外(コールスタックを含む)を投稿してください。あなたは 'Exception.ToString()' –

答えて

0

"_stageService"(最初のdbcontext!)と "_dbContext"(2番目のdbcontext)のSaveChangesから "currentStage"が得られるからだと思います。 dbContextを混在させることはできません。

関連する問題