无法通过Entity Framework从WPF数据网格更新数据库

时间:2013-08-14 22:51:02

标签: c# wpf entity-framework wpfdatagrid ado.net-entity-data-model

我有简单的C#WPF应用程序,它通过实体框架模型将数据从数据库获取到WPF数据网格中。从数据库到WPF DataGrid的方向一切正常。

我的问题是从数据网格到数据库的相反方向。我想在每次更新单元后更新数据库,因此我在CellEditEnding事件中工作。

下面的代码不会抛出任何异常,但不会将WPF数据网格单元格更改保存到数据库中(DGISPRSDataView是我的WPF数据网格)

请告诉我,问题出在哪里?我错过了什么?如何将数据网格更改连接到数据模型和数据库?或者是否有来自服务器的回调 - 就像Silverlight案例中那样 - (实体模型+ DomainContext类)

非常感谢!

private void DGISPRSDataView_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
   try
   {
      ReviewsEntities dataEntity = new RreviewsEntities(); //DataContext
      this.DGISPRSDataView.DataContext = dataEntity.Form_output_test;
      dataEntity.SaveChanges();

      MessageBox.Show("Update succesfully end");
   }
   catch (Exception err)
   {
      MessageBox.Show(err.ToString());
   }
}

1 个答案:

答案 0 :(得分:1)

尝试将数据加载到上下文中的一个DBS。 上下文应该为您要维护的每个类都有一个DBSet,并且网格应该有一个作为它的数据源

例如加载时

        var dset = Db.Tasks;
        DbSet<Task> qry = dset;
        qry.Load();
        bindingSource1.DataSource  =dset.Local.ToBindingList();

保存时

        bindingSource1.EndEdit();
        Db.SaveChanges();