我有一个Winforms测试应用程序,用于尝试了解Entity Framework Core。
我在表上绑定了一个datagridview,我可以编辑字段并调用context.SaveChanges()
-工作正常。
如果我在不同行上编辑了多个单元格,删除并添加了一行,然后改变了主意而又不想保存,该怎么办?如何丢弃更改并使用原始数据刷新datagridview?
我先打EntityFrameworkQueryableExtensions.Load(context.entity)
,然后再打dataGridView1.Refresh()
,但我的表单在更改后保持不变。
dataGridView1.DataSource = context.enity.Local.ToBindingList();
答案 0 :(得分:0)
要从数据库加载数据,必须再次实例化上下文:
context = new SampleDbContext(options);
然后,您可以以任何可能的方式重新加载网格。我认为最简单的方法是再次分配它:
dataGridView.DataSource = context.MyDbSet;
还有一件事(以防万一,您想了解更多); EF并非设计用于长期存在的环境。使用EF的最佳方法是在处理完DbContext实例后将其丢弃:
using(var ctx = new SampleDbContext()){
instances = ctx.MyDbSet....
}