使用EF保存BindingList中的更改

时间:2015-03-10 12:56:45

标签: c# entity-framework

有winform网格用于编辑数据。填充数据(简化代码):

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

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

context.SaveChanges();

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

1 个答案:

答案 0 :(得分:2)

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

不要直接创建新的DbSet,而是尝试将BindingList设置为DataSource的本地可观察列表(我假设DbSet为{} {1}})

context.RegionViews