实体框架不会重新加载我的UPDATED数据

时间:2013-09-16 09:35:40

标签: c# entity-framework datagridview frameworks entity

我有视觉工作室或实体框架的问题。 情况很简单: 我有雇员,我现在有数据网格视图,当我点击编辑雇员时,我从员工那里得到身份证明

int employeID= Convert.ToInt32(dgvEmployes.SelectedRows[0].Cells[0].Value);
frmEditEmploye edit = new frmEditEmploye ();
edit.employ = new ePoliticsServis.Data.Employ();
edit.employ= eServis.Data.EmployesService.SelectEmployeById(employeID);

我从db获得Employe,我以新的形式加载employees进行编辑,我保存更新的日期,进入数据库刷新表,一切都很好,所有都更新,但问题是,当我回到预览时, datagrid视图(datagrid用新数据刷新,绑定,一切正常)再次点击相同的员工进行编辑,我有表格进行编辑但是有旧数据,没有来自同一个员工的数据库的新增数据,当我击落时我的应用程序再次运行然后我得到新的数据重新和更新。我真的不知道问题出在哪里..

1 个答案:

答案 0 :(得分:0)

我怀疑问题是你的数据上下文是从内存中检索数据,而不是数据库看到我之前的answer可能的解决方案。

请记住在Using语句中包围数据上下文以正确处理它。

从您的最新评论中我可以看到您可能没有正确处理您的上下文,我认为这在您的代码中称为“连接”。这可能是该类的成员变量,

您可能需要将方法更改为以下内容:

//您需要检查连接类型并在此处使用它。我正在使用'Connection'因为我不知道你的上下文的名字。

Using (var myContext = new Connection()) 
{
  var returnValue =  myContext.dm.epsp_Employ_SelectById(id).FirstOrDefault();
}

return returnValue;

还有一件事......保存记录后检查数据库是否正在更新。如果不是,则需要调用SaveChanges()。