如何将.Net对象存储到SQL Server中?

时间:2012-08-23 16:31:24

标签: c# asp.net sql-server

我正在尝试存储一个充满属性和字段的C#类。如何将该类存储到SQL Server 2008中。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

有许多不同的方法,这取决于您希望如何再次取出该对象。没有进一步的信息,我们无能为力。

  1. 您可以使用Entity Framework将对象映射到数据库表。然后,每个属性都对应一个表格列。
  2. 您可以序列化对象并存储在数据库表的单个列中 - 序列化为xml,json或二进制blob。

答案 1 :(得分:3)

将对象表示为模式的正确方式:表示对象及其对象图的一个或多个相关表:属性,子类型和引用类型。这使您可以将存储对象作为SQL数据进行查询,并将其用于其他目的(例如,报告)。

或者,您可以序列化对象实例。您可以通过[Serializable]属性以声明方式执行此操作。您可以通过实现ISerializable接口并将其序列化为二进制,JSON以及您选择的其他一些表示来自行推送。

您可以使用XML序列化属性或通过实现IXmlSerializable来序列化到XML或从XML序列化。

或者您可以忽略对此类内容的内置支持,并按照自己的方式对其进行序列化。

将序列化为Stream后,您可以将其存储在适当类型(varbinary(max)varchar(max))列中,具体取决于序列化的方式。

第三个选项是创建CLR user-defined type并在SQL Server中安装程序集。我不确定我是否建议将其作为“最佳实践”