这是不可行的代码
private void GetEmployees()
{
var empQuery = from emp in Employees
select new
{
Title=emp.标题,
JobTitle=emp.JobTitle,
ProjectTitle=emp.ProjectTitle
};
spGridView.DataSource = empQuery;
spGridView.DataBind();
}
这是可行的代码
private void GetEmployees()
{
var empQuery = from emp in Employees
select new
{
Title = "空值11",
JobTitle = "空值1111",
ProjectTitle = "继续空值22222"
};
spGridView.DataSource = empQuery;
spGridView.DataBind();
}
由上可知,代码是没错的。问题就出在“对象中的某些字段是不支持的这样查询的” ,解决方法应该是根据ID去获取。但是以下情况也要注意,不然也会出现这样的报错
演练http://msdn.microsoft.com/zh-cn/library/ff742311(v=office.14).aspx
表达式 emp.Project.DueDate 和 emp.Project.Title 会在“员工”和“项目”列表之间创建隐式连接。另请注意,select语句仅指定将真正显示在 Web 部件中的字段。不需要通过网络将每个项目项的“说明”字段从内容数据库发送到前端 Web 服务器。