public void SaveConfig(IReadTransactionContext tx = null) { if (_access != EFileAccess.ReadWrite) { throw new NFSdbIOException("Attempt to save partition {0} config in read-only state", DirectoryPath); } if (!Directory.Exists(DirectoryPath)) { Directory.CreateDirectory(DirectoryPath); } var config = _config; if (config == null) { config = new PartitionConfig(); config.Columns = _metadata.Settings.BuildColumns(); } config.PartitionID = PartitionID; config.RecordHint = tx != null?tx.GetPartitionTx(PartitionID).NextRowID : _metadata.Settings.RecordHint; using (var fs = File.Open(Path.Combine(DirectoryPath, PartitionSettingsFileName), FileMode.Create, FileAccess.ReadWrite)) { ConfigurationSerializer.WritePartitionConfiguration(fs, config); } _config = config; }