将FlowDocument保存到SQL Server

将FlowDocument保存到SQL Server

问题描述:

我需要将WPF FlowDocuments保存到SQL Server。这样做的最佳格式是什么?串? BLOB?在大约5K字左右的文档中,它有重要意义吗?将FlowDocument保存到SQL Server

如果您只是想将FlowDocument对象存储在数据库中,而不进行任何处理,我会推荐使用二进制序列化,并将生成的字节数组存储到varbinary(max)中。这很快并且规模很好。但是,如果您已经将FlowDocuments作为XML文件存在,那么只需将它们转储到nvarchar(max)字段中,并且没有(添加的)序列化/反序列化开销,就会更容易。对于8k以下的值,这个比例很小,然后执行一个OK,直到你达到10MB的标记。

FlowDocument不是可序列化的,所以SWeko的上面的答案将不起作用。 可以使用下面的方法从Xaml字符串中获取FlowDocument,然后使用nvarchar(max)将其保存到数据库中。

var stringReader = new StringReader(info); 
    var xmlTextReader = new XmlTextReader(stringReader); 
    return (FlowDocument)XamlReader.Load(xmlTextReader); 

var infoString = XamlWriter.Save(info); 
+2

事实上,SWeko的答案是正确的 - 你可以序列化的FlowDocument要么XAML或二进制。您的代码对于XAML是正确的,因此我的+1。 – 2010-03-25 18:18:47