如何将Nullable <int>传递给存储过程...来自F#?</int>

时间:2009-03-15 16:30:58

标签: linq-to-sql f# null stored-procedures

我正在尝试使用F#的输出参数调用存储过程,因此我需要将int?值初始化为null。但是,F#拒绝我的尝试,说该对象不能为空。我已经在网上读到了为什么会这样但我的问题仍然存在 - 我需要调用该存储过程。有没有人对我怎么做有任何想法?感谢。

2 个答案:

答案 0 :(得分:4)

我不相信F#从null转换 - &gt;空Nullable。但是如果你实例化一个Nullable对象,它将默认为没有值。这相当于在C#/ VB中传递null。

myStoredProc (new System.Nullable<int>())

答案 1 :(得分:2)

F#允许您做的一件好事是声明“通用值”,这样您就不必一直写出值的长度构造。

let gnull = new System.Nullable<_>();;

现在,只要您需要将null作为可空字段传递给某个函数,就可以使用gnull

> let foo (a:System.Nullable<int>) = 0;;
val foo : System.Nullable<int> -> int

> foo gnull;;
val it : int = 0