0

我目前正在尝试为数据库中的所有存储过程编写一个简单的 C# 包装类。为此,我使用 CodeSmith,尤其是 SchemaExplorer。

在遍历存储过程的参数时,我注意到属性 ParameterSchema.AllowDBNull 并想知道这是做什么用的。据我所知,不可能将参数声明为 NOT NULL,因此始终允许将 NULL 传递给任何参数。

通过测试,AllowDBNull 似乎始终为真(或者至少,我无法编写导致假的过程)。所以,这让我问它是干什么用的?

我早在 2003 年就在 CodeSmith 论坛上找到了这篇文章:http: //community.codesmithtools.com/Support_Forums/f/3/t/264.aspx

他们说他们将在下一个版本中“修复”这个问题,这让我觉得我对这个属性有一些遗漏或不理解的地方。

感谢您的关注。

4

1 回答 1

1

我为 CodeSmith Tools 工作,我已经根据您的问题更新了论坛帖子。我就这个问题咨询了 Eric,我们认为这是设计使然,因为您始终可以将 null 传递给存储过程参数。作为您问题的一部分,这是一个在基类中定义的属性,如果该对象可以为空,则允许您检测其他模式对象(EG、ColumnSchema)。

CommandWrapper模板将从现有存储过程或函数生成强类型类。你有机会看看这个吗?

于 2011-08-11T17:01:26.940 回答