如果查询没有结果,Database.SqlQuery(十进制)(sql.tostring)将失败
我有一个简单的max查询:如果查询没有结果,Database.SqlQuery(十进制)(sql.tostring)将失败,sql,vb.net,entity-framework,casting,boxing,Sql,Vb.net,Entity Framework,Casting,Boxing,我有一个简单的max查询: sql.Append("Select Max(myID) from MyTable") 然后使用实体框架在我的db上下文下执行 ctx.database.SqlQuery(Of Decimal)(Sql.ToString) 如果select生成一个值,则运行正常。但是,当查询没有返回任何内容时,我会遇到各种类型的强制转换问题。我已尝试使用“FirstOrDefault”和“DefaultIfEmpty”,但仍会出现错误,如“转换为值类型'System.Decima
sql.Append("Select Max(myID) from MyTable")
然后使用实体框架在我的db上下文下执行
ctx.database.SqlQuery(Of Decimal)(Sql.ToString)
如果select生成一个值,则运行正常。但是,当查询没有返回任何内容时,我会遇到各种类型的强制转换问题。我已尝试使用“FirstOrDefault”和“DefaultIfEmpty”,但仍会出现错误,如“转换为值类型'System.Decimal'失败,因为具体化的值为null。结果类型的泛型参数或查询必须使用可为null的类型。”
我知道这没有价值,所以演员阵容会中断,但我无法找到解决方案。非常感谢您的帮助。看起来它试图将
Null
填充到十进制中。尝试使用可为空的十进制
ctx.database.SqlQuery(Of Decimal?)(Sql.ToString)