IsVisible
DBから取得するエンティティにブール値を設定しようとしているコントローラーメソッドからDbEntityValidationExceptionが発生します。ページのチェックボックスの変更によるAJAX投稿への応答です。このコードは以前は機能していました。
var targetClass = db.Classes.FirstOrDefault(x => x.ID == cid);
targetClass.IsVisible = true;
db.SaveChanges();
これによりDbEntityValidationException
、次のエラーが発生します。
The SchoolYear field is required.
The TuitionPlan field is required.
このコードをステップスルーすると、とは両方ともtargetClass.SchoolYear
有効targetClass.TuitionPlan
です。
質問は、EFがこれらのフィールドが欠落していると考える理由をどのように理解するのですか?
編集:これは(あまりにも)遅延読み込みに関係している可能性があります...両方の「欠落」フィールドを使用すると、エラーはなくなります。おそらく、深刻な問題が解決した理由がわからないことほど心配なことはありません。
var targetClass = db.Classes.FirstOrDefault(x => x.ID == cid);
targetClass.IsVisible = value;
int x = targetClass.TuitionPlan.ID;
x = targetClass.SchoolYear.ID;
db.SaveChanges();
ここで何が起こっているのか、そして将来これをどのように防ぐべきかを説明してくれる人が本当に必要です。
洞察をありがとう、エリック