エンティティフレームワーク4.1を使用し、asp.net mvcで最初にコードしています。ちょうど私が以下のコード(コントローラ)を書いたことをテストするために。あなたが見ることができる上記のコードでは、直接読み込み時と変数読み込み時に異なる値を示すエントリ状態
public ActionResult Foo()
{
StringBuilder sb = new StringBuilder();
using (var db = new DemoDataBase1Context())
{
//get person from db
var person = db.Persons.FirstOrDefault();
//get entry
var entry = db.Entry(person);
//now change the person object
person.Name = "Some New Value";
//print entity state
//this is showing unchanged
sb.Append("<br>State: " + entry.State);
//this is showing changed
sb.Append("<br>State: " + db.Entry(person).State);
}
return Content(sb.ToString());
}
IAMは、私がしなければそのは、変わらないと言っentry.State
をやっdb.Entry(person).State
その格言が変更されました。どのような理由で説明できますか?
私はちょうどチェックしました:この文の後に 'var entry2 = db.Entry(person);' | 'entry1.State'と' entry2.State'は両方ともModifiedです。今、私は 'var entry2 = db.Entry(person);'をコメントアウトしました.'、 'entry1.State'はModifiedを示しています。私はなぜそれが起こっているのか知りません。 –
あなたの行動を示すコードを更新してください。私がテストを走らせたとき、それは期待通りに機能しました。 – Dismissile