ユーザーがフィールドに入力するウィザード手順があります。次に、json を使用して、ウィザードの各ステップで値をデータベースに保存します。ただし、私のリポジトリには savechanges() があります。ただし、変更は保存されず、代わりにエラーがスローされます。
「NKImodeledmxContainer.SelectedQuestion」のエンティティは、「QuestionSelectedQuestion」関係に参加します。0 件の関連する「質問」が見つかりました。1 つの「質問」が予想されます。
エラーを取り除く方法を知っている人はいますか?Question から ID を取得してデータベースに保存する必要がありますか、それとも EF で何かを変更してエラー メッセージがスローされないようにすることはできますか?
これは私のコントローラの私の投稿です:
[HttpPost]
public JsonResult AnswerForm(int id, SelectedQuestionViewModel model)
{
bool result = false;
var goalCardQuestionAnswer = new GoalCardQuestionAnswer();
goalCardQuestionAnswer.SelectedQuestion = new SelectedQuestion();
goalCardQuestionAnswer.SelectedQuestion.Id = model.QuestionID;
goalCardQuestionAnswer.Comment = model.Comment;
goalCardQuestionAnswer.Grade = model.Grade;
if (goalCardQuestionAnswer.Grade != null)
{
answerNKIRepository.SaveQuestionAnswer(goalCardQuestionAnswer);
answerNKIRepository.Save();
result = true;
return Json(result);
}
answerNKIRepository.SaveQuestionAnswer(goalCardQuestionAnswer);
answerNKIRepository.Save();
return Json(result);
}
マイ リポジトリ
public class AnswerNKIRepository
{
private readonly NKImodeledmxContainer db = new NKImodeledmxContainer();
public List<SelectedQuestion> GetAllSelectedQuestionsByGoalCardId(int goalCardId)
{
return db.SelectedQuestion.Where(question => question.GoalCard.Id == goalCardId).ToList();
}
public void SaveQuestionAnswer(GoalCardQuestionAnswer goalCardQuestionAnswer)
{
db.GoalCardQuestionAnswer.AddObject(goalCardQuestionAnswer);
}
public void Save()
{
db.SaveChanges();
}
}
これは私のビューモデルです:
public class SelectedQuestionViewModel
{
public int? Grade { get; set; }
public string Comment { get; set; }
public string SelectedQuestionText { get; set; }
public int QuestionID { get; set; }
}
これは私のデータベースモデルです: