实体框架核心,丢弃并更新数据网格视图

时间:2018-10-10 15:59:03

标签: c# winforms entity-framework-core

我有一个Winforms测试应用程序,用于尝试了解Entity Framework Core。

我在表上绑定了一个datagridview,我可以编辑字段并调用context.SaveChanges()-工作正常。

如果我在不同行上编辑了多个单元格,删除并添加了一行,然后改变了主意而又不想保存,该怎么办?如何丢弃更改并使用原始数据刷新datagridview?

我先打EntityFrameworkQueryableExtensions.Load(context.entity),然后再打dataGridView1.Refresh(),但我的表单在更改后保持不变。

dataGridView1.DataSource = context.enity.Local.ToBindingList();

1 个答案:

答案 0 :(得分:0)

要从数据库加载数据,必须再次实例化上下文:

context = new SampleDbContext(options);

然后,您可以以任何可能的方式重新加载网格。我认为最简单的方法是再次分配它:

dataGridView.DataSource = context.MyDbSet;

还有一件事(以防万一,您想了解更多); EF并非设计用于长期存在的环境。使用EF的最佳方法是在处理完DbContext实例后将其丢弃:

using(var ctx = new SampleDbContext()){
    instances = ctx.MyDbSet....
}