使用 EF 在绑定列表中保存更改

本文关键字:保存更改 列表 绑定 EF 使用 | 更新日期: 2024-11-08 07:13:24

有用于编辑数据的wform网格。填写数据(简化代码):

var regions = context.RegionViews;
var bindinglist = new BindingList<RegionView>(regions.ToList());
gridControl.DataSource = (IBindingList) bindinglist;

使用相同的上下文保存数据:

context.SaveChanges();

但仅保存编辑更改,而不保存添加和删除的行。

使用 EF 在绑定列表中保存更改

您正在从新列表(使用 regions.ToList() 创建的列表)中创建BindingList<RegionView>,以便保存对记录的更改(因为列表中的引用也指向包含DbSet的对象),但原始DbSet不知道正在添加或删除项目(因为它们是从该列表中添加/删除的, 而不是来自DbSet

尝试将DataSource设置为DbSet的本地可观察列表,而不是直接创建新BindingList(我假设context.RegionViews是一个DbSet

gridControl.DataSource = context.RegionViews.Local.ToBindingList();