繁体   English   中英

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

[英]Asp.net c#, Unable to create a constant value of type 'System.Object'

var result = from q in memberDbSet
     select new
     {
         no = q.no,
         fullName = q.firstName + ' ' + q.lastName
     };

无法创建类型为'System.Object'的常量值。 在此上下文中仅支持原始类型或枚举类型。

我遇到了错误,我在做什么错?

发生这种情况是因为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()之前将所有过滤放入查询中,以避免将AsEnumerable()数据读入内存。

您正在连接字符串和一个char 显然,实体框架不喜欢这样。 改成

fullName = q.firstName + " " + q.lastName

唯一的是,我本来期望

无法创建类型为'System.Char'的常量值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM