我在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 的正确方法应该是什么?

解决方法 1:

错误是很清楚-不能直接绑定到查询结果中,但需要改为填充一些本地的集合。

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

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