只是想知道DAL是否有任何最佳实践来表示空值(来自可空列).
我们目前拥有自己的内部DAL,并使用int.MinValue表示null值.然而,这种上升令开发人员认为在比较值时,我们故意在int.MinValue上强加另一个"添加"值,并且在DAL层中将int.MinValue用于空值这一事实令人困惑.所以其他人提出了来自.net 2.0的NullValue,但我们发现这种方法也存在性能和语法问题:
zorched.net:.NET可空类型和DBNull暴露设计缺陷
BCL团队博客:Nullable Performance
megasolutions.net:带有可选参数的Web服务
dotnet2themax.com:C#可空类型的行为不一致
那么,你对此有何看法?其他着名的ORM如何处理空值?围绕这个问题是否有最好的做法?
为了表示可以为空的整数,我每次都使用Nullable
(aka int?
).这正是它的设计目标.您提供的几个环节,但你能说出究竟在那里可空类型的语法您的问题是,在哪里你见过显著的性能问题(铭记数据库调用可能是很多比任何转换更贵正在进行中).
编辑:我注意到倒数第二个链接是涉及我的新闻组对话.在这种情况下我转向清除可空类型的原因是因为问题是围绕一个Web服务,它可能需要有效地将空值传递给没有可空值类型的平台.我不认为这适用于你所描述的情况.