public void EffortConnectionStringBuilder_InstanceId() { var writer = new EffortConnectionStringBuilder(); writer.InstanceId = "InstanceId"; var reader = new EffortConnectionStringBuilder(writer.ConnectionString); Assert.AreEqual("InstanceId", reader.InstanceId); }
public void EffortConnectionStringBuilder_IsTransient() { var writer = new EffortConnectionStringBuilder(); writer.IsTransient = true; var reader = new EffortConnectionStringBuilder(writer.ConnectionString); Assert.IsTrue(reader.IsTransient); }
public void EffortConnectionStringBuilder_DataLoaderArgument() { var writer = new EffortConnectionStringBuilder(); writer.DataLoaderArgument = "LoaderArgument"; var reader = new EffortConnectionStringBuilder(writer.ConnectionString); Assert.AreEqual("LoaderArgument", reader.DataLoaderArgument); }
public void EffortConnectionStringBuilder_DataLoaderType() { var writer = new EffortConnectionStringBuilder(); writer.DataLoaderType = typeof(Effort.DataLoaders.EmptyDataLoader); var reader = new EffortConnectionStringBuilder(writer.ConnectionString); Assert.AreEqual(typeof(Effort.DataLoaders.EmptyDataLoader), reader.DataLoaderType); }
public void CsvDataProvider() { string path = "C:\\"; DbConnection connection = DbConnectionFactory.CreateTransient(new CsvDataLoader(path)); EffortConnectionStringBuilder csb = new EffortConnectionStringBuilder(connection.ConnectionString); csb.DataLoaderType.Should().Be<CsvDataLoader>(); csb.DataLoaderArgument.Should().Be(path); }
/// <summary> /// Deletes all store objects specified in the store item collection from the /// database and the database itself. /// </summary> /// <param name="connection"> /// Connection to an existing database that needs to be deleted. /// </param> /// <param name="commandTimeout"> /// Execution timeout for any commands needed to delete the database. /// </param> /// <param name="storeItemCollection"> /// The structure of the database to be deleted. /// </param> protected override void DbDeleteDatabase( DbConnection connection, int?commandTimeout, StoreItemCollection storeItemCollection) { EffortConnectionStringBuilder connectionString = new EffortConnectionStringBuilder(connection.ConnectionString); DbContainerStore.RemoveDbContainer(connectionString.InstanceId); }
public void EffortConnectionStringBuilder_Normalize() { var builder = new EffortConnectionStringBuilder(); builder.IsTransient = true; builder.Normalize(); Assert.IsFalse(builder.IsTransient); Guid value; Assert.IsTrue(Guid.TryParse(builder.InstanceId, out value)); }
public void transient_EffortConnection_should_normalize_connectionstring() { EffortConnection conn = new EffortConnection(); conn.ConnectionString = "IsTransient=True"; var builder = new EffortConnectionStringBuilder(conn.ConnectionString); // The IsTransient flag should be removed builder.IsTransient.Should().BeFalse(); Guid value; // The InstanceId should be set as a guid Guid.TryParse(builder.InstanceId, out value).Should().BeTrue(); }
/// <summary> /// Opens a database connection with the settings specified by the /// <see cref="P:System.Data.Common.DbConnection.ConnectionString" />. /// </summary> public override void Open() { EffortConnectionStringBuilder connectionString = new EffortConnectionStringBuilder(this.ConnectionString); string instanceId = connectionString.InstanceId; if (this.lastContainerId == instanceId) { // The id was not changed, so the appropriate container is associated this.ChangeConnectionState(ConnectionState.Open); return; } this.container = DbContainerStore.GetDbContainer(instanceId, this.CreateDbContainer); this.containerConfiguration = new DbContainerManagerWrapper(this.container); this.lastContainerId = instanceId; this.ChangeConnectionState(ConnectionState.Open); }
private DbContainer CreateDbContainer() { EffortConnectionStringBuilder connectionString = new EffortConnectionStringBuilder(this.ConnectionString); IDataLoader dataLoader = null; DbContainerParameters parameters = new DbContainerParameters(); Type dataLoaderType = connectionString.DataLoaderType; if (dataLoaderType != null) { //// TODO: check parameterless constructor dataLoader = Activator.CreateInstance(dataLoaderType) as IDataLoader; dataLoader.Argument = connectionString.DataLoaderArgument; parameters.DataLoader = dataLoader; } parameters.IsTransient = this.isPrimaryTransient; return(new DbContainer(parameters)); }
private DbContainer CreateDbContainer() { EffortConnectionStringBuilder connectionString = new EffortConnectionStringBuilder(this.ConnectionString); IDataLoader dataLoader = null; DbContainerParameters parameters = new DbContainerParameters(); Type dataLoaderType = connectionString.DataLoaderType; if (dataLoaderType != null) { //// TODO: check parameterless constructor dataLoader = Activator.CreateInstance(dataLoaderType) as IDataLoader; dataLoader.Argument = connectionString.DataLoaderArgument; parameters.DataLoader = dataLoader; } parameters.IsTransient = this.isPrimaryTransient; return new DbContainer(parameters); }
internal virtual void UnregisterContainer() { var builder = new EffortConnectionStringBuilder(this.ConnectionString); DbContainerStore.RemoveDbContainer(builder.InstanceId); }
/// <summary> /// Creates a new EntityConnection instance that wraps an EffortConnection object /// with the specified connection string. /// </summary> /// <param name="entityConnectionString"> /// The entity connection string that references the metadata and identifies the /// persistent database. /// </param> /// <param name="effortConnectionString"> /// The effort connection string that is passed to the EffortConnection object. /// </param> /// <param name="persistent"> /// if set to <c>true</c> the ObjectContext uses a persistent database, otherwise /// transient. /// </param> /// <returns> /// The EntityConnection object. /// </returns> public static EntityConnection Create( string entityConnectionString, string effortConnectionString, bool persistent) { MetadataWorkspace metadata = GetEffortCompatibleMetadataWorkspace(ref entityConnectionString); EffortConnectionStringBuilder ecsb = new EffortConnectionStringBuilder(effortConnectionString); if (persistent) { ecsb.InstanceId = entityConnectionString; } else { ecsb.InstanceId = Guid.NewGuid().ToString(); } EffortConnection connection = new EffortConnection() { ConnectionString = ecsb.ConnectionString }; if (!persistent) { connection.MarkAsPrimaryTransient(); } return CreateEntityConnection(metadata, connection); }
/// <summary> /// Creates an EffortConnection object with a connection string that represents the /// specified parameter values. /// </summary> /// <param name="instanceId"> The instance id. </param> /// <param name="dataLoader"> The data loader. </param> /// <returns> The EffortConnection object. </returns> private static EffortConnection Create(string instanceId, IDataLoader dataLoader) { EffortProviderConfiguration.VerifyProvider(); EffortConnectionStringBuilder connectionString = new EffortConnectionStringBuilder(); connectionString.InstanceId = instanceId; if (dataLoader != null) { connectionString.DataLoaderType = dataLoader.GetType(); connectionString.DataLoaderArgument = dataLoader.Argument; } EffortConnection connection = new EffortConnection(); connection.ConnectionString = connectionString.ConnectionString; return connection; }