我正在将SQL Server 2008与NHibernate一起用于应用程序。在应用程序中,我需要创建一个Info类的多个对象,并在多个位置使用它。我还需要将该对象存储在数据库中。
Info类有多种类型。
要存储Info类的这些对象,我有两个选项
将序列化对象存储在数据库中而不是将其值存储为多个字符串有什么好处?
-RAM
答案 0 :(得分:3)
如果将序列化对象存储到db:
中我存储了多个字符串,你:
我肯定会使用关系规范化表单来存储字符串,然后在.net中构建相应的类构建器。
答案 1 :(得分:0)
我肯定会存储记录和字段,而不仅仅是表示对象当前状态的一大块字节(二进制或文本或xml)。
它当然取决于您的业务实体的复杂性(在您的情况下是Info类),但我真的会避免将其序列化版本保存在1列中。
如果将所有属性分解为字段,则可以更好地查询具有特定值的记录,并且可以更轻松地处理新列和发布。
答案 2 :(得分:0)
将对象存储为序列化流的最常见问题是,一旦存储对象很难搜索对象的属性,而如果对象的每个属性都显式存储在其自己的强类型列中,则可以为搜索编制索引,并获得强类型存储的完整性优势。
但是,至少如果对象是XmlSerialized到SQL中的XML列,您可以使用xquery和OPENXML等技术来简化搜索。
答案 3 :(得分:0)
序列化的obejct(XML) 如果将类存储为XML。您将能够使用Xquery搜索该类的contect。如果你想搜索(有或没有条件),这种方式是有道理的。此外,您可以在XML列上创建索引。 XML索引将使您的应用程序更快。
AS字符串 如果你没有bussines登录,看看课程的内容。