无法投放类型&System; Int.322'键入' System.Object'。 LINQ to Entities仅支持转换EDM原语或枚举类型

时间:2016-07-31 13:21:34

标签: c# asp.net entity-framework linq casting

您好我相信这个问题在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

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

2 个答案:

答案 0 :(得分:1)

您不能使用ToString()在针对数据库的查询中进行格式化,因为没有等效的SQL方法,它会给您一个错误。 (以下是支持的字符串方法列表,BTW:https://msdn.microsoft.com/en-us/library/bb738534(v=vs.100).aspx)。

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

以下是一些方法:

How can I convert DateTime to String in Linq Query?

Convert datetime to a formatted string inside a LINQ to SQL query

答案 1 :(得分:0)

我通过改变代码行来解决这个问题

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),

谢谢大家的帮助! :)