這是一個很好的做法,當我需要通過屬性傳遞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. 我可以將類型限制爲僅包含可爲空的屬性嗎?