2011-04-28 135 views
0

我目前正在尝试使用为数据库中的所有存储过程编写一个简单的C#包装类。为此,我使用CodeSmith,特别是SchemaExplorer。CodeSmith中ParameterSchema.AllowDBNull的含义是什么?

虽然迭代存储过程的参数,我注意到属性ParameterSchema.AllowDBNull,并想知道这是什么。据我所知,不可能将参数声明为NOT NULL,因此总是允许NULL传递给任何参数。

通过测试,看起来AllowDBNull始终为真(或者至少,我还没有能够编写一个导致错误的过程)。所以,这导致我问这是为了什么?

我发现这个职位从CodeSmith的论坛,从早在2003年: http://community.codesmithtools.com/Support_Forums/f/3/t/264.aspx

他们说,他们将“修正”这在未来的版本这让我觉得是,我失去了一些东西或者不理解关于这个属性。

感谢您的期待。

回答

1

我为CodeSmith Tools工作,我从你的问题更新了forum post。我向Eric咨询了这个问题,并且我们认定这是由设计决定的,因为您始终可以将null传递给存储过程参数。作为您的问题的一部分,这是一个在基类中定义的属性,并允许您在其他模式对象(E.G.,ColumnSchema)上检测对象是否可为空。

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