var result = from q in memberDbSet
select new
{
no = q.no,
fullName = q.firstName + ' ' + q.lastName
};
无法创建类型' System.Object'的常量值。只要 在此上下文中支持原始类型或枚举类型。
我遇到了上述错误,我做错了什么?
答案 0 :(得分:2)
这是因为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()
之前将所有过滤放入查询中,以避免向内存中读取超出您需要的数据。
答案 1 :(得分:1)
您正在连接字符串和char
。显然,实体框架并不是那样的。将其改为
fullName = q.firstName + " " + q.lastName
唯一的是,我原本预计
无法创建类型为System.Char'
的常量值