c# – 从具体化的“System.DateTime”类型到“System.String”类型的指定强制转换无效

前端之家收集整理的这篇文章主要介绍了c# – 从具体化的“System.DateTime”类型到“System.String”类型的指定强制转换无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Entity Framework 5,并且从下面调用count()
string sqlStr = @"SELECT top 20 ID,CAST(DOI as DATETIME) as IDate
               FROM DTable";

var results = db.Database.sqlQuery<SRVM>(sqlStr);


//get total count
var total = results.Count();

我收到错误

The specified cast from a materialized ‘System.DateTime’ type to the
‘System.String’ type is not valid.

有什么想法吗?

解决方法

看起来您将DateTime放入linq查询中的String变量中.我也猜测查询的第一个是“results.Count()”,它实际上是在执行查询并试图填充你正在填充的任何对象.如果将Count()调用更改为将执行调用的任何方法(ToList(),First(),…),您将看到相同的错误.

当您将DateTime投影到字符串匹配时,请确保使用格式提供程序调用ToString()以进行转换.

猜你在找的C#相关文章