C# 在数据库字符串列中持久化可为null的值类型的好方法
我想知道在数据库的字符串列中持久化可为空值类型的最佳方法是什么 背景: 我的计划是在数据库中有一个通用消息表,其中包含资源名称,Web使用该表查找本地化的资源字符串,并将格式项序列化为串联字符串:C# 在数据库字符串列中持久化可为null的值类型的好方法,c#,serialization,type-conversion,C#,Serialization,Type Conversion,我想知道在数据库的字符串列中持久化可为空值类型的最佳方法是什么 背景: 我的计划是在数据库中有一个通用消息表,其中包含资源名称,Web使用该表查找本地化的资源字符串,并将格式项序列化为串联字符串: TABLE LogMessages ( ResourceName NVARCHAR(50), FormatItems NTEXT ) 假设我在Web上有一个资源文件,其中包含一个资源条目“UserSetup”,其值为“用户{0}已在{1:d}上创建。” 例如,表中的条目可能是: Resour
TABLE LogMessages
(
ResourceName NVARCHAR(50),
FormatItems NTEXT
)
假设我在Web上有一个资源文件,其中包含一个资源条目“UserSetup”,其值为“用户{0}已在{1:d}上创建。”
例如,表中的条目可能是:
ResourceName:“用户设置”-->引用资源的名称字段FormatItems:“System.String;Bob | System.DateTime;2009-06-15T13:45:30.0900000” 然后Web将还原数组并将其传递给string.Format(…)方法 问题: 除了这个概念是否合理的问题之外,我想知道空值(例如int?)应该如何保存在连接的字符串中?。我可以使用空引用的关键字吗 一个想法是使用像NULL这样的关键字,例如“System.String;NULL|System.DateTime;2009-06-15T13:45:30.0900000”。但这可能与值实际上是字符串“NULL”的对象冲突 您建议如何持久化可为null的类型和null值
感谢你的任何想法 尝试使用空字符串:“?您的逻辑在
null
和String.Empty
(”
)之间是否有差异?对于值类型,您可以只使用string.Empty
,如:System.Int32|系统日期时间;2009-06-15T13:45:30.0900000
@Corak谢谢Corak。你说得对,这么简单,但我还没想过。我将使用相同的threat string.Empty和null,并将string.Empty用作其他值类型的null标识符。我会将您的评论标记为答案,但这不可能用于评论。请不要威胁string.Empty
和null
。他们很容易害怕^_^