不支持直接绑定到商店查询(DbSet,DbQuery,DbSqlQuery,DbRawSqlQuery)的数据错误

时间:2017-09-06 07:36:30

标签: asp.net entity-framework data-binding

我有以下代码来填充我的Asp.net gridview的数据。我在其他asp.net页面中使用了与下面相同的代码来将数据加载到gridview。所有其他页面都可以使用代码,并成功显示gridview和数据。但是在一个页面中,要显示客户购买的产品列表,它会显示错误。 这是我的代码。

using (DataContext.DBEntities ctx = new DataContext.DBEntities())
{
List<DataContext.vwClientAndProduct> product = new List<DataContext.vwClientAndProduct>();
product = ctx.SP_ClientAndProduct_Select().ToList<DataContext.vwClientAndProduct>();
gvList.DataSource = product.ToList();
gvList.DataBind();
}

我跟踪了错误页面的代码,它成功传递了gvList.DataBind()方法。但是当我继续F5时,我的product.aspx页面中会显示错误消息。错误始于&#39;数据绑定直接到商店查询(DbSet,DbQuery,DbSqlQuery,DbRawSqlQuery)不支持....&#39;

以下各项也不起作用。

var product = (from row in ctx.SP_ClientAndProduct_Select()
                              select row).ToList();

//var product = from row in ctx.SP_ClientAndProduct_Select()
                              select row;
//var product = ctx.SP_ClientAndProduct_Select().ToList();                   

gvList.DataSource = product.ToList();
gvList.DataBind();

另一页适用于以下内容。

using (DataContext.DBEntities ctx = new DataContext.DBEntities ())
            {
var product = ctx.SP_Product_Select().ToList()
                gvList.DataSource = product.ToList();
                gvList.DataBind();
            }

虽然代码相同,但我不知道为什么这不起作用。

请帮忙。 感谢

1 个答案:

答案 0 :(得分:1)

有效!

我创建了一个新的aspx页面,并将所有代码从错误页面复制到新页面。

当新页面加载时,gridview会显示数据。

非常奇怪!

感谢。