指定的强制转换对DBNULL为Double无效

时间:2013-12-10 03:17:53

标签: vb.net entity-framework linq-to-sql

我正在使用VB.net的Entity框架。我试图将null值传递给类型为double的参数。当我向该方法传递“nothing”时,它将其视为默认值0而不是null。当我传递DBNull.value时,我收到错误,因为Cast无效。这是我的主叫线和接收线。

  • Linq查询

    From x In MyDbContext.uspSearch((txtFrom.Text = "", DBNull.Value, txtFrom.Text)...
    
  • 在实体框架中调用的方法

    Public Function uspSearch(FromParm As Nullable(Of Global.System.Double)) As ObjectResult(Of uspSearch_Result)
    

1 个答案:

答案 0 :(得分:0)

试试这个:

From x In MyDbContext.uspSearch(IF(txtFrom.Text = "", CType(Nothing, Double?), txtFrom.Text))

如果您尝试将其隐式转换为double,则默认Nothing为0,但您可以为Nullale(Double)显式创建NULL值