【问题标题】:Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)
【发布时间】:2012-10-17 15:55:29
【问题描述】:

我在 visual studio 2012 上进行编码,并使用 Entity Model 作为我的数据层。但是,当页面尝试加载时,我使用 Linq 语句的下拉控件往往会引发未处理的异常(上面的标题)。下面是我的代码;

using (AdventureWorksEntities dw = new AdventureWorksEntities())
        {
            ddlCon.DataSource = (from em in dw.Employees
                                 select new { em.Title, em.EmployeeID });

            ddlCon.DataTextField = "Title";
            ddlCon.DataValueField = "EmployeeID";
            ddlCon.DataBind();
            ddlCon.Items.Insert(0, new ListItem("--Select--", "--Select--"));
        }
  1. 我想知道为什么会出现这个错误
  2. 使用 LINQ 时绑定到控件的正确方法应该是什么?

【问题讨论】:

  • 如果您也发布错误会有所帮助。
  • @Max 问题标题错误(虽然不是很清楚)

标签: c# linq visual-studio data-binding entity


【解决方案1】:

错误很明显 - 您不能直接绑定到查询结果,而是需要填充一些本地集合。

最简单的方法是将其转换为List<T>,通过ToList()

 ddlCon.DataSource = (from em in dw.Employees
                             select new { em.Title, em.EmployeeID }).ToList();

【讨论】:

  • 谢谢...但现在另一个问题是新的 LINQ 语句引发了相同的错误(从 dw.Employees 中的 em 选择新 { em.Title, em.EmployeeID })。Distinct ().OrderBy(name => name)... 请帮帮我
  • @user1753728 这看起来像是一个不同的问题。我会把它作为一个单独的问题提出,包括代码在内的详细信息。 (不过,您马上就要按整个匿名班级订购,这可能不是您想要的......)
  • 不,这不是我想要的,我只需要源头的独特物品。
  • @user1753728 正如我所说,尝试将其发布在一个单独的问题中。有太多细节无法放入 cmets。
  • 好的...但是我怎么能标记你,因为我相信你已经得到了我需要的答案。 微笑
【解决方案2】:

或者,如果您想避免编写 LINQ 表达式,您可以这样做:

var dbContext = new EF.CustomerEntities();
gvCustomers.DataSource = dbContext.CustomersTable.ToList();

【讨论】:

    【解决方案3】:

    虽然这个问题已经得到解答,但我想表明你甚至可以直接从消息框中得到答案(我得到了同样的错误) ERROR DIALOGUE BOX IMAGE

    using (var retrive=new Models.Academy_MSDBEntities())
            {
                var query = retrive.Students.Where(s => s.Year == year).ToList();
                return query;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 2018-05-05
      相关资源
      最近更新 更多