我在 ADO.Net 中使用的参数不多。我正在编写一个自定义的 .Net 数据提供程序(以 SqlClient 为模型),并且必须在我的参数类中实现 IsNullable 属性,该属性继承自 DbParameter。我的数据提供者不支持存储过程,所以我只支持输入(替换样式)参数。
MSDN 文档对 IsNullable 的功能相当不清楚,指出“获取或设置一个值,指示参数是否接受空值”。谷歌搜索发现很多人对 IsNullable 的作用感到困惑,他们说将 IsNullable 设置为 false 并不禁止他们使用参数,这将是一个空值,正如他们所期望的那样。
基于此,我认为 IsNullable 属性可能与存储过程的使用有关,以及存储过程的参数是否可以为空,而不是参数值是否可以为空。
在这种情况下,由于我没有存储过程,我的实现可以是:
public override bool IsNullable { get { return false; } set {} }
为了避免不得不摆弄一些测试代码来了解 SqlParameter 的 IsNullable 实现如何工作,如果有使用参数编写代码的经验的人可以解释 IsNullable,我将不胜感激。