繁体   English   中英

无法将类型“ System.Int32”强制转换为类型“ System.Object”。 LINQ to Entities仅支持强制转换EDM基本类型或枚举类型

[英]Unable to cast the type 'System.Int32' to type'System.Object'. LINQ to Entities only supports casting EDM primitive or enumeration types

嗨,我相信这个问题在StackOverFlow上已经是100次了,但是我没有解决此问题。 这是使我麻烦的代码行

 DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null,

请解决此问题。

完整的代码

     var result = resultVideoKlipBaseInfo.Select(x => new
            {
                x.IDvideoKlip,
                x.LokacijaHDD,
                x.NazivVideoKlipa,
                x.Snimatelj.IDsnimatelj,
                x.Snimatelj.Ime,
                x.Snimatelj.Prezime,
                x.Snimatelj.Storno,
                DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null,
                SatIMinutaSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Hour + ":" + ((DateTime)x.VrijemeSnimanja).Minute : null,
                x.VrijemeSnimanja,                          
                x.VrijemeTrajanjaKlipa

            });
            return Ok(result);

通过此代码,我将从数据库中获取DateTime,并将其从DateTime格式转换为字符串格式。

我想从这里2016-12-31 00:00:00.000像这样31.12.2016

谢谢大家阅读这个问题:)

您不能使用ToString()在针对数据库的查询中进行格式化,因为没有等效的SQL方法,并且这样做会给您带来错误。 (以下是所支持的字符串方法的列表,顺便说一句: https ://msdn.microsoft.com/zh-cn/library/bb738534( v=vs.100 ).aspx)。

最简单的方法是返回原始值,然后在调用主查询后进行格式化(通过在其上调用ToList()或遍历结果)。

以下是几种方法:

如何在Linq查询中将DateTime转换为String?

将日期时间转换为LINQ to SQL查询中的格式化字符串

我通过更改代码行来解决此问题

DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null,

在这个

    DatumSnimanja = SqlFunctions.DateName("day", x.VrijemeSnimanja) + "." + SqlFunctions.DateName("month", x.VrijemeSnimanja) + "." +  SqlFunctions.DateName("year", x.VrijemeSnimanja),

谢谢大家的帮助! :)

暂无
暂无

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

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