在这个例子在这里,斯科特显示做对的DbContext LINQ查询,并将结果直接绑定到一个GridView,以显示产品列表.他的例子是使用Code First的CTP4版本.
但是,当我尝试使用最新版本的EntityFramework 4.1做同样的事情时,我收到以下错误:
不支持直接绑定到商店查询(DbSet,DbQuery,DbSqlQuery)的数据.而是使用数据填充DbSet,例如通过在DbSet上调用Load,然后绑定到本地数据.
我看到DBQuery对象在IListSource.GetList()的实现中故意抛出此错误,IListSource.GetList()用于数据绑定.
为什么他的例子有效?顺便说一句,我知道我可以通过投入一个来完成这项工作projects.ToList().我的主要问题是发布版本中的某些内容是否发生了变化,导致此类内容不再起作用,或者我是否遗漏某些可以解决此错误的内容.
仅供参考,我指的是这样的代码:
MyDbContext db = new MyDbContext();
var projects = from p in db.Projects
where p.AnotherField == 2
select p;
grdTest.DataSource = projects;
grdTest.DataBind();
Run Code Online (Sandbox Code Playgroud) c# asp.net data-binding exception-handling entity-framework-4.1