mar*_*ith 22 .net c# sql-server serialization
任何人都可以建议将数据(实际上是一个类)序列化到数据库的最佳方法吗?
我正在使用SQL Server 2008,但我认为我需要在存储到数据库之前将类序列化为字符串/或其他数据类型?
我认为这个字段需要是文本还是二进制?
SQL Server 2008(或.net 3.5)是否支持直接对数据库进行序列化?
任何帮助真的很感激
Nee*_*ack 36
您可以将类序列化为xml字段.我们一直使用它来在ETL中进行异常记录.
使用XmlSerializer,您可能需要一个帮助器方法,将类序列化为字符串...
public static string SerializeToXml<T>(T value)
{
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(writer, value);
return writer.ToString();
}
Run Code Online (Sandbox Code Playgroud)
然后就像其他任何一样将字符串放入db中.
Mar*_*ell 20
在数据库中存储数据的最佳方法是在列(每个属性)中,以便它是可查询和可索引的.ORM工具将有助于此.
但是,它是也可以序列化类作为CLOB/BLOB(varchar(max)/ varbinary(max)等).
这就是你想要的,避免任何特定于实现或版本不容忍; 特别是,不要使用BinaryFormatter.任何以合同为基础的都应该有效; XmlSerializer,DataContractSerializer等或为快速的二进制,protobuf网可能是值得一试.
但我强调; 列会更好.
| 归档时间: |
|
| 查看次数: |
39780 次 |
| 最近记录: |