c# - 不支持直接绑定(bind)到存储查询(DbSet、DbQuery、DbSqlQuery)的数据

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

我在 visual studio 2012 上编码并使用实体模型 作为我的数据层。但是,当页面尝试加载(上面的标题)时,我使用 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 时绑定(bind)到控件的正确方法应该是什么?

最佳答案

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

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

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

关于c# - 不支持直接绑定(bind)到存储查询(DbSet、DbQuery、DbSqlQuery)的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12938371/

相关文章:

c# - 在没有 HTTP 请求的情况下使用 PerRequestLifetimeManager 解析类型

c# - 将字符串转换为 Linq lambda 表达式

c# - 我们如何获得在 Visual Studio Publish 中使用的相同发布命令

c++ - boost::format 仅在 Windows 下异常

c# - python 到 c# (关于服务器请求)

c# - MongoDb 更新错误 : Maximum serialization depth exceeded

sql - 使用Linq to SQL进行多线程

c# - 使用 Linq 表达式在 SQLite 3 中更新

c# - 使用这种类型的外部库后出现错误 "Type does not exist in the namespace"

c# - 为什么我在这段代码中的输出参数上得到代码分析 CA1062?