/// <summary> /// Creates the partial data of all rows that have been <see cref="Add"/>'d so far. /// If a partial table can't be created, <see cref="CreateFullData"/> is automatically /// called instead. If this method isn't explicitly called, it will be implicitly called /// later when the partial data must be written. The table will be set to read-only. /// </summary> public void CreatePartialData() { mdTable.SetReadOnly(); if (!CanWritePartialTable) { CreateFullData(); return; } InitializePartialData(); var memStream = new MemoryStream(mdTable.TableInfo.RowSize); var writer = new BinaryWriter(memStream); foreach (var rid in rids) { memStream.Position = 0; var row = mdTable.Get(rid); writer.Write(mdTable, row); partialData[rid] = memStream.ToArray(); } }