C# 用于XmlSerialize任意对象的ESE列类型

C# 用于XmlSerialize任意对象的ESE列类型,c#,.net,xml-serialization,extensible-storage-engine,C#,.net,Xml Serialization,Extensible Storage Engine,将对象XmlSerialize到我的ESE数据库的最佳ESE列类型是什么 “长二进制”和“长ASCII文本”都可以正常工作 长二进制的原因:绝对确定没有字符对话 长文本的原因:XML是文本 MSDN似乎说这两种类型只是在排序和搜索时有所不同。显然,我不会在该列上创建任何索引;需要可搜索和/或可排序的字段存储在适当类型的单独列中 假设任何大小小于2GB的UTF8文本都可以保存到ESE“长ASCII文本”列值中并从中加载,这样安全吗?是的,您可以将多达2GB的UTF8文本数据放入任何长文本/二进制列

将对象XmlSerialize到我的ESE数据库的最佳ESE列类型是什么

“长二进制”和“长ASCII文本”都可以正常工作

长二进制的原因:绝对确定没有字符对话

长文本的原因:XML是文本

MSDN似乎说这两种类型只是在排序和搜索时有所不同。显然,我不会在该列上创建任何索引;需要可搜索和/或可排序的字段存储在适当类型的单独列中


假设任何大小小于2GB的UTF8文本都可以保存到ESE“长ASCII文本”列值中并从中加载,这样安全吗?

是的,您可以将多达2GB的UTF8文本数据放入任何长文本/二进制列中。长二进制和长文本之间的唯一区别是在列上创建索引时数据的规格化方式。除此之外,ESE只是将提供的字节存储在列中,而不进行转换。ESE只能索引ASCII或UTF16数据,应用程序负责确保数据格式正确,因此将数据放入长二进制列似乎更为正确。由于您没有创建索引,因此实际上不会有任何区别

如果您在Windows 7或Windows Server 2008 R2上运行,则应调查列压缩。对于XML数据,只需打开压缩,您就可以获得显著的节约