这是一个很好的做法,当我需要通过属性传递DBNULL。使它们成为可空类型。因为我们需要将Null值传递给后端的变量。我们将它们设置为Nullable.But这样也可以使用Properties。将对象的属性设置为可为空类型?
1
A
回答
2
在某些情况下,你真的没有选择。例如T-SQL bit
数据类型(它是.NET中的一个类型BOOL
);在T-SQL,也可以是NULL,0或1。所以,你必须将其设置为可空类型,因为这样的:
public bool? MySqlBitField { get; set; }
更新:我做这本书框架设计指南的快速参考( Cwalina,Abrams),来自Addison Wesley的Nullable类型及其用法。我已经粘贴了书中的一些文字。顺便说一句,我会强烈推荐这本书作为一个很好的一般参考。
从书:
使用可为空来表示可能不存在(即,可选的值)值考虑。例如,当使用表示可选表列的属性从数据库返回强类型记录时使用它。
除非以类似的方式使用引用类型,否则不要使用Nullable,这是因为引用类型值可以为null。
例如,您不会使用null来表示可选参数。
// bad design
public class Foo {
public Foo(string name, int? id);
}
// good design
public class Foo {
public Foo(string name, int id);
public Foo(string name);
}
AVOID使用Nullable来表示一般的三态值。只能用Nullable表示真正可选的布尔值:true,false和not available。如果您只想表示三种状态(例如,是,不,取消),请考虑使用枚举。
AVOID使用System.DBNull。优先选择Nullable。
从巴勃罗·卡斯特罗
可空注意是一般较好的可选的数据库值的表示。有一点需要考虑,虽然Nullable允许您表示空值的能力,但您不会获得数据库空操作语义。具体而言,您不会通过运算符和函数获得空传播。如果你非常关心传播语义,可以考虑坚持DBNull。
相关问题
- 1. 将LLBLGen Pro TypedList属性设置为可空类型?
- 2. 使用automapper更新目标对象并将可为空的类型属性值设置为空
- 3. 将属性属性设置为装饰类的类型
- 4. 将属性设置为类
- 5. 将linq对象的属性设置为另一个的属性
- 6. 属性设置器类型的其他值设置为属性?
- 7. 如何使用PropertyInfo.SetValue方法设置可为空属性的值(对象,对象)
- 8. 将动态类型的属性设置为动态类型
- 9. 立即设置为对象的属性
- 10. C#可为空类型和值属性
- 11. 如何将动态样式属性设置为对象属性
- 12. 可为空的对象类型
- 13. 如何在类型为DateTime的属性中将空白设置为默认值?
- 14. 将对象表IndexPath设置为对象属性?
- 15. 是否可以在javascript中将对象的属性值设置为对象?
- 16. 将Java安全属性设置为空
- 17. 将属性设置为空 - SAP CRM WebUI
- 18. 无法设置属性为对象
- 19. 将每个属性类型设置为not_analyzed用于自定义对象
- 20. 空传入对象构造为类型长的属性
- 21. Java <Optional>对象为空或对象的属性为空?
- 22. CoreData - 将实体的属性设置为非空 - 应该将属性设置为可选还是必需
- 23. C#:可为空类型(int?)对象?
- 24. 根据对象的属性将对象置于某种类型
- 25. 将可为空的int设置为空
- 26. 将asp.net会话对象设置为空
- 27. 如何将对象设置为空
- 28. 将扫描器对象设置为空
- 29. 为什么对象属性为空?
- 30. 我可以将类型限制为仅包含可为空的属性吗?