var result = from q in memberDbSet
select new
{
no = q.no,
fullName = q.firstName + ' ' + q.lastName
};
我无法创建类型为"系统对象"的常量值。只 此上下文支持基元类型或枚举类型。
犯了错误,我做错了什么?
发生这种情况是因为 LINQ 提供程序无法将q.firstName + ' ' + q.lastName
表达式转换为 SQL。解决此问题的解决方法是调用AsEnumerable()
将数据放入内存中,并在那里执行其余的选择:
var result = (from q in memberDbSet /* where clause goes here */)
.AsEnumerable()
. Select(q => new {
no = q.no,
fullName = q.firstName + ' ' + q.lastName
});
请确保在AsEnumerable()
之前将所有筛选放入查询中,以避免将更多的数据读入内存,而不是所需的数据。
您正在连接字符串和char
.显然,实体框架不喜欢这样。将其更改为
fullName = q.firstName + " " + q.lastName
唯一的问题是,我会预料到的
无法创建类型为"System.Char"的常量值