我在asp.net mvc中使用实体框架4.1和代码。只是为了测试学习我写下面的代码(一个控制器)。直接读取和从变量读取时显示不同值的条目状态
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',现在都说修改。现在我只是注释了'var entry2 = db.Entry(person);','entry1.State'显示Modified。我不知道为什么会发生。 –
更新您的代码以显示您在做什么。当我运行我的测试时,它按预期工作。 – Dismissile