比方说,你有各种任意类型的对象,你想存储在一个键+值类型的表中。例如,密钥可以是int,string或guid。价值是什么?字符串,二进制或其他东西?C#:你会如何在SQL Server中存储任意对象?
你将如何存储和加载对象?我会想一些序列化,但是什么样的?
我目前所面对的一个解决方案,我用这两种方法的类:
public T Get<T>(string key)
public void Set<T>(string key, T value)
在我有一个字符串列和二进制列一个表的数据库。然后,我使用BinaryFormatter
对该值进行序列化和反序列化,并使用Linq2Sql将二进制结果放入数据库表中。但这是一个很好的解决方案吗?目前我只敢用整数和字符串这样简单的值来尝试这个。一般而言,BinaryFormatter
和序列化如何与更复杂的类型(如结构和类)一起工作?特别是如果该值包含数组或列表等内容。
任何指针?
此刻我将使用它来存储各种最后选定或键入等等类型的值。虽然它们可能不一定总是打字。例如,它可能是从列表中选择值。主要的一点是,它们几乎只是用户的便利用品,所以不是非常重要的数据。
(并以“任何指针”我不是这个意思“我应该使用任何指针”) – Svish 2009-07-13 08:41:28
LOL。指针 - 可能是个好主意,具体。 – 2011-05-03 15:50:46