private LinqToDBDomainContext CreateDomainContext(StorageMappingDescriptor storageMappingDescriptor) { var linqToDbModel = _linqToDbModelFactory.Create(storageMappingDescriptor.EntityContainerName); var connections = Connections.GetOrAdd( storageMappingDescriptor.ConnectionStringIdentity, connectionStringIdentity => { var dataProvider = new SQLiteDataProvider(); var connectionString = _connectionStringSettings.GetConnectionString(connectionStringIdentity); var connection = (SQLiteConnection)dataProvider.CreateConnection(connectionString); connection.Open(); var dataConnection = new DataConnection(dataProvider, connection) { CommandTimeout = linqToDbModel.QueryExecutionTimeout, IsMarsEnabled = false }; dataConnection.AddMappingSchema(linqToDbModel.MappingSchema); return(Tuple.Create(connection, TuneConnection(dataConnection))); }); return(new LinqToDBDomainContext(connections.Item1, connections.Item2, new ManagedConnectionStateScopeFactory(), new WritingStrategyFactory(), linqToDbModel.TransactionOptions, new NullPendingChangesHandlingStrategy())); }
public IReadableDomainContext Create(StorageMappingDescriptor storageMappingDescriptor) { return(CreateDomainContext(storageMappingDescriptor)); }