我在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--"));
}
- 我想要知道该错误发生的原因
- 绑定到控件时使用 LINQ 的正确方法应该是什么?
解决方法 1:
错误是很清楚-不能直接绑定到查询结果中,但需要改为填充一些本地的集合。
执行此操作的最简单方法是将其转换为 List<T>
,通过 ToList()
:
ddlCon.DataSource = (from em in dw.Employees
select new { em.Title, em.EmployeeID }).ToList();
不做与做得最大区别是:后者拥有对前者的评论权