我有视觉工作室或实体框架的问题。 情况很简单: 我有雇员,我现在有数据网格视图,当我点击编辑雇员时,我从员工那里得到身份证明
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用新数据刷新,绑定,一切正常)再次点击相同的员工进行编辑,我有表格进行编辑但是有旧数据,没有来自同一个员工的数据库的新增数据,当我击落时我的应用程序再次运行然后我得到新的数据重新和更新。我真的不知道问题出在哪里..
答案 0 :(得分:0)
我怀疑问题是你的数据上下文是从内存中检索数据,而不是数据库看到我之前的answer可能的解决方案。
请记住在Using语句中包围数据上下文以正确处理它。
从您的最新评论中我可以看到您可能没有正确处理您的上下文,我认为这在您的代码中称为“连接”。这可能是该类的成员变量,
您可能需要将方法更改为以下内容:
//您需要检查连接类型并在此处使用它。我正在使用'Connection'因为我不知道你的上下文的名字。
Using (var myContext = new Connection())
{
var returnValue = myContext.dm.epsp_Employ_SelectById(id).FirstOrDefault();
}
return returnValue;
还有一件事......保存记录后检查数据库是否正在更新。如果不是,则需要调用SaveChanges()。