0

我对视觉工作室或实体框架有疑问。情况很简单:我有员工,我有当前的数据网格视图,当我点击编辑员工时,我从员工那里获得 ID

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,我以新形式加载员工进行编辑,我保存更新的日期,然后进入数据库刷新表,一切都很好,一切都更新了,但问题是,当我回到预览时,datagrid 视图( datagrid 用新数据刷新,绑定,一切正常),然后再次单击同一个员工进行编辑,我有用于编辑的表单,但使用旧数据,当我击落我的应用程序时,没有来自同一员工的数据库中的新更新数据再次运行,然后我会重新释放和更新新数据。我真的不知道哪里有问题。。

4

1 回答 1

0

我怀疑问题是您的数据上下文正在从内存中检索数据,而不是从数据库中查看我以前的答案以获得可能的解决方案。

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

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

您可能需要将方法更改为如下所示:

//你需要检查类型Connection是并在这里使用它。我正在使用“连接”,因为我不知道您的上下文名称。

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

return returnValue;

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

于 2013-09-16T10:54:08.297 回答