在单字段匿名类型linq中组合两个字段值

在单字段匿名类型linq中组合两个字段值,linq,select,anonymous,Linq,Select,Anonymous,0I要执行linq select查询以获取匿名类型字段,该字段是两个字段的串联 (from c in ctx.Documents where c.FileName == doc.FileName select new { fileName = c.FileName + "" + c.UploadDate, value = c.UploadDate }).ToList(); 但是这个linq查询抛出了异常 无法强制转换类型'System.Nullable'1[[System.Da

0I要执行linq select查询以获取匿名类型字段,该字段是两个字段的串联

(from c in ctx.Documents
where c.FileName == doc.FileName
select new
{
    fileName = c.FileName + "" + c.UploadDate,
    value = c.UploadDate
}).ToList();
但是这个linq查询抛出了异常

无法强制转换类型'System.Nullable'1[[System.DateTime,mscorlib, 版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089]' 输入'System.Object'。LINQ to实体仅支持铸造EDM 基本类型或枚举类型

请指导我解决这个错误。我知道这是因为日期与字符串的连接,但我如何解析isse并获得所需的输出

谢谢, 请尽快回复

试着这样做:

(from a in
(from c in ctx.Documents 
     where c.FileName == doc.FileName
     select c).AsEnumerable() 
     select new { fileName = a.FileName + "" + a.UploadDate, 
                  value = a.UploadDate }).ToList();
试试这个

  fileName = c.FileName == null ? String.Empty : c.FileName + c.UploadDate== null ? :   String.Empty : c.UploadDate ;

您遇到相同的异常?LINQ to Entities无法识别“System.String ToString()”方法,并且无法将此方法转换为存储表达式。它正在引发相同的异常。请尝试:SqlFunctions.StringConvert(c.UploadDate)或在该异常中尝试:StringConvert((double)c.UploadDate)