protected DataAccessModelConfiguration CreatePostgresConfiguration(string databaseName) { var retval = PostgresConfiguration.Create(new PostgresSqlDatabaseContextInfo() { DatabaseName = databaseName, ServerName = "localhost", UserId = "postgres", Password = "******", NativeEnums = false, Categories = null, Pooling = true, MinPoolSize = 10, MaxPoolSize = 10, SqlDataTypeProvider = Type.GetType("Shaolinq.Postgres.PostgresSqlDataTypeProvider, Shaolinq.Postgres") }); retval.AlwaysSubmitDefaultValues = this.alwaysSubmitDefaultValues; retval.ValueTypesAutoImplicitDefault = this.valueTypesAutoImplicitDefault; retval.SaveAndReuseGeneratedAssemblies = true; retval.SqlDatabaseContextInfos[0].SqlDataTypes = new List <Type> { typeof(SqlFixedDateDataType) }; return(retval); }
protected DataAccessModelConfiguration CreatePostgresConfiguration(string databaseName) { return(PostgresConfiguration.Create(new PostgresSqlDatabaseContextInfo() { DatabaseName = databaseName, ServerName = "localhost", UserId = "postgres", Password = "******", NativeEnums = true, Categories = null })); }
public void StressTest() { var config = PostgresConfiguration.Create("StressTest", "localhost", "postgres", "postgres"); (config.SqlDatabaseContextInfos[0] as PostgresSqlDatabaseContextInfo).MaxPoolSize = 2; (config.SqlDatabaseContextInfos[0] as PostgresSqlDatabaseContextInfo).KeepAlive = 0; var dataModel = DataAccessModel.BuildDataAccessModel <TestDataAccessModel>(config); dataModel.Create(DatabaseCreationOptions.DeleteExistingDatabase); Console.WriteLine(dataModel.GetCurrentSqlDatabaseContext().ConnectionString); using (var scope = new DataAccessScope()) { var school = dataModel.Schools.Create(); var student = dataModel.Students.Create(); student.School = school; student.Firstname = "Tum"; student.Lastname = "Nguyen"; for (var i = 0; i < 10000; i++) { var s2 = dataModel.Students.Create(); s2.School = school; s2.Firstname = "Student " + i; } scope.Complete(); } const int numThreads = 10; var cancellationTokenSource = new CancellationTokenSource(); var resetEvents = new List <WaitHandle>(); for (var i = 0; i < numThreads; i++) { var resetEvent = new ManualResetEvent(false); resetEvents.Add(resetEvent); var dispatchThread = new Thread(_ => { while (!cancellationTokenSource.Token.IsCancellationRequested) { try { dataModel.Students.ToList(); } catch (Exception ex) { Console.WriteLine("Test error: {0}", ex); } } resetEvent.Set(); }) { Name = $"Thread: {i + 1}" }; dispatchThread.Start(); } Thread.Sleep(10000); cancellationTokenSource.Cancel(); WaitHandle.WaitAll(resetEvents.ToArray()); }
public void Connect() { var configuration = PostgresConfiguration.Create(ConnectionString); var model = DataAccessModel.BuildDataAccessModel <MldbModel>(configuration); }