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

how to cast an observable collection to System.Data.Entity.DBSet type

您好,我正在使用一个可观察的集合,我将其显示在 wpf 屏幕的数据网格中。

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

使用的代码: Customer 是为 SQL 数据库中的 table 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 上添加一行,它会被添加到可观察集合中,但我如何将其推送到 contextCust。看起来 SaveChanges 方法只允许数据更改,但不允许添加行。

有没有一种方法可以将可观察集合转换为 CustomerTable 类型并使 contextCust 使用相同的类型。请指教。

谢谢, T

好吧,如果您将另一行添加到您的网格中(假设您正在创建一个 Customer),您必须使用 DbSet.Add Method 将其添加到 contextCust.CustomerTable 并跟踪它SaveChanges

添加到您的 ObservableCollection 的内容不会添加到此 DbSet,因为它们不是 connected/synced 神奇的。