如何将可观察集合强制转换为System.Data.Entity.DBSet类型

时间:2015-04-10 12:44:57

标签: c# wpf ado.net wpfdatagrid ado.net-entity-data-model

您好我正在使用我在wpf屏幕上的datagrid中显示的可观察集合。

我已将其与ADO.NET实体数据模型对象相关联。当我对datagrid中的数据进行任何更改并执行SaveChanges()时,会将其保存在数据库中。但是,如果我添加一行,那么就不会添加。我哪里错了。

使用的代码: Customer是为SQL数据库中的表CustomerTable添加的ADO.NET实体数据模型对象。

Customer contextCust = new Customer();
var list = from e in contextCust.CustomerTable select e;
custCollection = new ObservableCollection<CustomerTable>(list);

现在当我更改UI显示屏上现有数据网格中的任何数据时,我调用了函数:

contextCust.SaveChanges();

这很好用。但是如果我在UI上添加一行,它会被添加到observable集合中,但是如何将其推送到contextCust。看起来只有SaveChanges方法允许数据更改但不添加行。

有没有办法可以将observable集合转换为CustomerTable类型,并使contextCust使用相同的内容。请建议。

谢谢, Ť

1 个答案:

答案 0 :(得分:0)

如果您在网格中添加另一行(假设您正在创建Customer),则必须使用DbSet.Add Method将其添加到contextCust.CustomerTable以跟踪SaveChanges 1}}

添加到ObservableCollection的内容不会添加到此DbSet,因为它们没有神奇地连接/同步。