使用 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();
但仅保存编辑更改,而不保存添加和删除的行。
您正在从新列表(使用 regions.ToList()
创建的列表)中创建BindingList<RegionView>
,以便保存对记录的更改(因为列表中的引用也指向包含DbSet
的对象),但原始DbSet
不知道正在添加或删除项目(因为它们是从该列表中添加/删除的, 而不是来自DbSet
)
尝试将DataSource
设置为DbSet
的本地可观察列表,而不是直接创建新BindingList
(我假设context.RegionViews
是一个DbSet
)
gridControl.DataSource = context.RegionViews.Local.ToBindingList();