我正在尝试做与this question相同的事情,但遇到了问题。
在插入和更新数据库之前,您能与我分享您如何准备对象吗?
我有一个List<myObject>
我希望在SQL Server 2008中存储为VarBinary(max)
。
答案 0 :(得分:2)
您需要将List<object>
转换为byte[]
。您不需要Linq,但我假设您使用的是Linq To Sql?在将对象存储在应包含二进制文件的属性中之前,需要将其转换为byte[]
。以下是一些示例代码,可以满足您的需求(Source Link):
// Convert an object to a byte array
private byte[] ObjectToByteArray(Object obj)
{
if(obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
// Convert a byte array to an Object
private Object ByteArrayToObject(byte[] arrBytes)
{
MemoryStream memStream = new MemoryStream();
BinaryFormatter binForm = new BinaryFormatter();
memStream.Write(arrBytes, 0, arrBytes.Length);
memStream.Seek(0, SeekOrigin.Begin);
Object obj = (Object) binForm.Deserialize(memStream);
return obj;
}