Asp.net c#,无法创建类型 'System.Object' 的常量值


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"的常量值

相关内容

  • 没有找到相关文章

最新更新