Devexpress 实体框架5不支持直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)的数据

Devexpress 实体框架5不支持直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)的数据,devexpress,entity-framework-5,datasource,Devexpress,Entity Framework 5,Datasource,我有一个devexpress GridControl,我正在为其设置数据源,如下所示: var regs = (from vcap in context.chaps select vcap); gridControl1.DataSource = new BindingList<chaps>(regs.ToList()); 我没有得到任何行,AddNewRow甚至没有直观地添加新行 如果我这样做: gridControl1.

我有一个devexpress GridControl,我正在为其设置数据源,如下所示:

var regs = (from vcap in context.chaps
                             select vcap);

gridControl1.DataSource = new BindingList<chaps>(regs.ToList());
我没有得到任何行,
AddNewRow
甚至没有直观地添加新行

如果我这样做:

gridControl1.DataSource = context.chaps.Local;
gridControl1.DataSource = context.chaps.ToList();
gridControl1.DataSource = context.chaps;
我获取行并可以保存对它们的更改;行被直观地删除,但不在数据库中,并且不能
AddNewRow

如果我这样做:

gridControl1.DataSource = context.chaps.Local;
gridControl1.DataSource = context.chaps.ToList();
gridControl1.DataSource = context.chaps;
我得到一个例外:

Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList().
但是context.chaps.Local也没有
ToBindingList
方法


我不认为这是devexpress的问题,但我不知道如何正确设置数据源。有没有办法获得与之相当的
context.chaps.Local.ToBindingList()

context.chaps.Local
是一个
可观察的集合。但是
ToBindingList
不是
ObservableCollection
的方法,而是
DbExtensions
中的扩展方法:

公共静态绑定列表到绑定列表(
这个可观察的收集源)其中T:class;
为了使用此方法并通过Intellisense查看它,您需要在代码文件中包含相应的名称空间,您可以在其中尝试调用
ToBindingList()

使用System.Data.Entity;

在将数据源绑定到绑定列表之前,请确保已加载所有行

context.chaps.load
加载数据
gridcontrol1.datasource=context.chaps.Local.ToBindingList()
“这将在网格上加载记录。还可以给您一个新行以添加新内容,或者您也可以更新网格。

因此我使用了gridControl1.DataSource=DbExtensions.ToBindingList(context.capitulo.Local);这完全有效!我可以添加、修改和删除。除了它没有加载我最初拥有的所有行(我的datagrid是空的)。你知道怎么做吗?还是我误解了答案?@user2414791:使用扩展方法时的标准语法与普通实例方法类似:
gridControl1.DataSource=context.capitulo.Local.ToBindingList()。但我认为这不会解决问题。当然,您仍然必须使用
regs.ToList()
regs.Load()
context.chaps.Load()
从数据库加载任何内容
Local
不运行查询,它只提供以前作为
可观察集合加载的实体。