如果没有查询结果,Database.SqlQuery(Of Decimal)(sql.tostring)将失败

时间:2014-02-03 07:25:04

标签: sql vb.net entity-framework casting boxing

我有一个简单的最大查询:

sql.Append("Select Max(myID) from MyTable")

然后我使用实体框架

在我的数据库上下文中执行
ctx.database.SqlQuery(Of Decimal)(Sql.ToString)

如果select产生一个值,则运行正常。但是,当查询返回任何内容时,我会遇到各种类型的转换问题。我已经尝试使用“FirstOrDefault”和“DefaultIfEmpty”,但仍然会收到错误,例如“强制类型转换为'System.Decimal'失败,因为具体化值为null。结果类型的泛型参数或查询必须使用可空类型。 “

我知道没有任何价值,所以演员阵容中断,但我不知道解决方案。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

看起来它正试图将Null填入Decimal。尝试使用可以为空的十进制......

ctx.database.SqlQuery(Of Decimal?)(Sql.ToString)