2010-03-15 109 views

回答

5

如果您只是想將FlowDocument對象存儲在數據庫中,而不進行任何處理,我會推薦使用二進制序列化,並將生成的字節數組存儲到varbinary(max)中。這很快並且規模很好。但是,如果您已經將FlowDocuments作爲XML文件存在,那麼只需將它們轉儲到nvarchar(max)字段中,並且沒有(添加的)序列化/反序列化開銷,就會更容易。對於8k以下的值,這個比例很小,然後執行一個OK,直到你達到10MB的標記。

4

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