トレーナー オブジェクトの保存に問題があります。トレーナー以外はすべて保存されました。オブジェクトのトレーニングを確認したところ、すべてのプロパティが入力されています (場所とトレーナーのプロパティも)。エラーは発生しませんが、トレーナー オブジェクトは保存されていません。
これが私のコードです:
Context db=new Context();
public void modifieTraining(Training training)
{
db.Entry(training.Location).State = EntityState.Modified;
db.Entry(training.Trainer).State = EntityState.Modified;
db.Entry(training).State = EntityState.Modified;
db.SaveChanges();
}
それは私がそうする唯一のオブジェクトです:
@Html.DropDownList("trainer", new SelectList(ViewBag.Trainer, "TrainerId", "Firstname"), "Selecteer een trainer")
@Html.TextBoxFor(model => model.Location.Address)
@Html.TextBoxFor(model=>model.Location.City)
...
後で私のコントローラーで:
public ActionResult EditTraining(int id, Training training, string trainer)
{
if (trainer != null && trainer!="Selecteer een trainer" )
{
training.Trainer = repository.getTrainer(Convert.ToInt32(trainer));
}
repository.modifieTraining(training);
return RedirectToAction("Index");
}
奇妙な理由で、マシンを再起動するとすべてがうまくいきました。しかし、SQL Server Management Studio を開くと. それでも NULL 値が表示されます。しかし、get メソッドを実行すると、正しい値が表示されます。
フィールドがnull可能であるためでしょうか?