internal LightningDatabase(string name, LightningTransaction transaction, DatabaseConfiguration configuration)
{
if (transaction == null)
throw new ArgumentNullException(nameof(transaction));
if (configuration == null)
throw new ArgumentNullException(nameof(configuration));
Name = name;
_configuration = configuration;
Environment = transaction.Environment;
Environment.Disposing += Dispose;
mdb_dbi_open(transaction.Handle(), name, _configuration.Flags, out _handle);
_pinnedConfig = _configuration.ConfigureDatabase(transaction, this);
IsOpened = true;
}