使用Entity Framework是否可以从数据库反序列化列并在保存回数据库时重新序列化?
基本上我将XML序列化为数据库中的字节数组。我想创建一个ADO.NET实体数据模型,我想知道我是否可以在数据模型中将此字段反序列化为字符串,然后在我的更改完成之后重新序列化,然后再将其保存回数据库中。
答案 0 :(得分:0)
这假设您将属性varbinary
存储在数据库中。您可以拥有与您的类中的blob列匹配的byte[]
属性,并公开一个属性或方法以从X(ML)Document
数组中提取反序列化的byte
对象。同样,使用属性setter或方法更新byte[]
属性将允许更新数据库中的文档。
示例仅供参考,不包括错误处理等。
class MyData
{
public byte[] XmlData { get; set; }
[NotMapped]
public XmlDocument XmlDocument
{
get
{
var doc = new XmlDocument();
var ms = new MemoryStream(this.XmlData);
doc.Load(ms);
return doc;
}
set
{
this.XmlData = Encoding.Default.GetBytes(value.OuterXml)
}
}
}