protected override void Arrange() { base.Arrange(); Builder = new ConfigurationSourceBuilder(); DataConfig = Builder.ConfigureData(); }
protected override void Arrange() { base.Arrange(); source = new DesignDictionaryConfigurationSource(); ConfigurationSourceBuilder sourceBuilder = new ConfigurationSourceBuilder(); sourceBuilder.ConfigureData().ForDatabaseNamed("connection-string1").ThatIs.ASqlDatabase().WithConnectionString("connectionStringValueXYZ").AsDefault() .ForDatabaseNamed("connection-string2").ThatIs.AnOracleDatabase().WithConnectionString("OracleConnectionString").WithPackageNamed("x").AndPrefix("XYZ") .ForDatabaseNamed("connection-string3").ThatIs.AnOracleDatabase().WithConnectionString("OracleConnectionString").WithPackageNamed("x").AndPrefix("XYZ"); sourceBuilder.UpdateConfigurationWithReplace(source); DatabaseSettings dbSettings = (DatabaseSettings)source.GetSection(DatabaseSettings.SectionName); dbSettings.ProviderMappings.Add(new DbProviderMapping("dbpro1", "dbtype")); dbSettings.ProviderMappings.Add(new DbProviderMapping("dbpro2", "dbtype")); source.Remove(DatabaseSettings.SectionName); source.Add(DatabaseSettings.SectionName, dbSettings); var configurationSection = source.GetSection(DataAccessDesignTime.ConnectionStringSettingsSectionName); var configurationSourceModel = Container.Resolve <ConfigurationSourceModel>(); configurationSourceModel.Load(source); databaseSectionViewModel = configurationSourceModel.Sections .Where(x => x.SectionName == DataAccessDesignTime.ConnectionStringSettingsSectionName) .Single(); }
protected override void Arrange() { base.Arrange(); source = new DesignDictionaryConfigurationSource(); ConfigurationSourceBuilder sourceBuilder = new ConfigurationSourceBuilder(); sourceBuilder.ConfigureData().ForDatabaseNamed("connection-string1").ThatIs.ASqlDatabase().WithConnectionString("connectionStringValueXYZ").AsDefault() .ForDatabaseNamed("connection-string2").ThatIs.AnOracleDatabase().WithConnectionString("OracleConnectionString").WithPackageNamed("x").AndPrefix("XYZ") .ForDatabaseNamed("connection-string3").ThatIs.AnOracleDatabase().WithConnectionString("OracleConnectionString").WithPackageNamed("x").AndPrefix("XYZ"); sourceBuilder.UpdateConfigurationWithReplace(source); DatabaseSettings dbSettings = (DatabaseSettings)source.GetSection(DatabaseSettings.SectionName); dbSettings.ProviderMappings.Add(new DbProviderMapping("dbpro1", "dbtype")); dbSettings.ProviderMappings.Add(new DbProviderMapping("dbpro2", "dbtype")); source.Remove(DatabaseSettings.SectionName); source.Add(DatabaseSettings.SectionName, dbSettings); var configurationSection = source.GetSection(DataAccessDesignTime.ConnectionStringSettingsSectionName); var configurationSourceModel = Container.Resolve<ConfigurationSourceModel>(); configurationSourceModel.Load(source); databaseSectionViewModel = configurationSourceModel.Sections .Where(x => x.SectionName == DataAccessDesignTime.ConnectionStringSettingsSectionName) .Single(); }
static void LogWithFluentInterface(CustomLogEntry logEntry) { var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() .ForDatabaseNamed("Logging") .ThatIs.ASqlDatabase() .WithConnectionString(@"data source=.\SQLEXPRESS;Integrated Security=SSPI;Database=Logging") .AsDefault(); builder.ConfigureLogging() .WithOptions .DoNotRevertImpersonation() .LogToCategoryNamed("General") .WithOptions.SetAsDefaultCategory() .SendTo.CustomDatabase("Custom Database Trace Listener") .WithAddCategoryStoredProcedure("AddCategory") .UseDatabase("Logging") .Filter(System.Diagnostics.SourceLevels.All) .WithWriteLogStoredProcedure("WriteLog") .FormatWithSharedFormatter("Text Formatter") .SpecialSources.LoggingErrorsAndWarningsCategory .SendTo.EventLog("Event Log Listener") .FormatWith(new FormatterBuilder() .TextFormatterNamed("Text Formatter") .UsingTemplate(@"Timestamp: {timestamp}{newline} Message: {message}{newline} Category: {category}{newline} Priority: {priority}{newline} EventId: {eventid}{newline} Severity: {severity}{newline} Title:{title}{newline} Machine: {localMachine}{newline} App Domain: {localAppDomain}{newline} ProcessId: {localProcessId}{newline} Process Name: {localProcessName}{newline} Thread Name: {threadName}{newline} Win32 ThreadId:{win32ThreadId}{newline} Extended Properties: {dictionary({key} - {value}{newline})}")) .ToLog("Application") .ToMachine(".") .UsingEventLogSource("Enterprise Library Logging") .Filter(SourceLevels.All) ; var configSource = new DictionaryConfigurationSource(); builder.UpdateConfigurationWithReplace(configSource); var dbProviderFactory = new DatabaseProviderFactory(configSource); DatabaseFactory.SetDatabaseProviderFactory(dbProviderFactory, false); var logWriterFactory = new LogWriterFactory(configSource); var logWriter = logWriterFactory.Create(); logWriter.Write(logEntry); // Re-initialize static Logger Logger.SetLogWriter(logWriter, false); Logger.Write("Test2", "General"); }
protected override void Arrange() { base.Arrange(); var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() .ForDatabaseNamed("someDatabase") .AsDefault(); var source = new DictionaryConfigurationSource(); builder.UpdateConfigurationWithReplace(source); ElementLookup = Container.Resolve<ElementLookup>(); DatabaseSection = (DatabaseSettings)source.GetSection(DatabaseSettings.SectionName); }
protected override void Arrange() { base.Arrange(); var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() .ForDatabaseNamed("someDatabase") .AsDefault(); var source = new DictionaryConfigurationSource(); builder.UpdateConfigurationWithReplace(source); ElementLookup = Container.Resolve <ElementLookup>(); DatabaseSection = (DatabaseSettings)source.GetSection(DatabaseSettings.SectionName); }
protected override void Arrange() { base.Arrange(); var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() .ForDatabaseNamed("SomeOracleDatabase") .ThatIs.AnOracleDatabase() .WithConnectionString("SomeOracleConnectionString") .ForDatabaseNamed("SomeOleDbDatabase") .ThatIs.AnOleDbDatabase() .WithConnectionString("Some OleDb ConnectionString") .AsDefault(); var source = new DictionaryConfigurationSource(); builder.UpdateConfigurationWithReplace(source); var configSourceModel = Container.Resolve<ConfigurationSourceModel>(); configSourceModel.AddSection(DatabaseSettings.SectionName, source.GetSection(DatabaseSettings.SectionName)); ConnectionStringSection = configSourceModel.AddSection("connectionStrings", source.GetSection("connectionStrings")); }
protected override void Arrange() { base.Arrange(); var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() .ForDatabaseNamed("SomeOracleDatabase") .ThatIs.AnOracleDatabase() .WithConnectionString("SomeOracleConnectionString") .ForDatabaseNamed("SomeOleDbDatabase") .ThatIs.AnOleDbDatabase() .WithConnectionString("Some OleDb ConnectionString") .AsDefault(); var source = new DictionaryConfigurationSource(); builder.UpdateConfigurationWithReplace(source); var configSourceModel = Container.Resolve <ConfigurationSourceModel>(); configSourceModel.AddSection(DatabaseSettings.SectionName, source.GetSection(DatabaseSettings.SectionName)); ConnectionStringSection = configSourceModel.AddSection("connectionStrings", source.GetSection("connectionStrings")); }
static void Main(string[] args) { // 単純にSQL文を実行 Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance <Database>(); // SQL文を発行してデータを格納 var people = database.ExecuteSqlStringAccessor <Person>( "SELECT Id, Name, Age FROM PERSON ORDER BY ID DESC"); // 結果を表示 foreach (var p in people) { Console.WriteLine("Id: {0}, Name: {1}, Age: {2}", p.Id, p.Name, p.Age); } } // パラメータつきのSQL文 Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance <Database>(); // SQL文を発行してデータを格納 var accessor = database.CreateSqlStringAccessor <Person>( // パラメータつきのSQL文 "SELECT Id, Name, Age FROM PERSON WHERE NAME LIKE @p1 ORDER BY ID DESC", // パラメータのマッピングルール SequenceParameterMapper.Default); // パラメータを指定して実行 var people = accessor.Execute("%mu%"); // 結果を表示 foreach (var p in people) { Console.WriteLine("Id: {0}, Name: {1}, Age: {2}", p.Id, p.Name, p.Age); } } // データの登録 Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance <Database>(); // コネクションを作成 using (var conn = database.CreateConnection()) { conn.Open(); // トランザクションを開始 using (var tran = conn.BeginTransaction()) { // 登録対象のデータ var p = new Person { Name = "hanami", Age = 100 }; // コマンドをSQLから作成 var command = database.GetSqlStringCommand("INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)"); // パラメータを追加 database.AddInParameter(command, "p1", DbType.String, p.Name); database.AddInParameter(command, "p2", DbType.Int32, p.Age); // トランザクションを指定してコマンドを実行 var count = database.ExecuteNonQuery(command, tran); // DB側でふられたIDを取得 var newId = database.ExecuteScalar(tran, CommandType.Text, "SELECT @@IDENTITY"); // 登録件数と、登録時にふられたIDを表示 Console.WriteLine("inserted: {0}, newId: {1}", count, newId); // コミット tran.Commit(); } conn.Close(); } } // Transaction Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 using (var tc = new TransactionScope()) { var database1 = EnterpriseLibraryContainer.Current.GetInstance <Database>(); Console.WriteLine("最初のdatabaseオブジェクト取得 HashCode: {0}", database1.GetHashCode()); for (int i = 0; i < 2; i++) { // 登録対象のデータ var p = new Person { Name = "hanami", Age = 100 }; // コマンドをSQLから作成 var command = database1.GetSqlStringCommand("INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)"); // パラメータを追加 database1.AddInParameter(command, "p1", DbType.String, p.Name); database1.AddInParameter(command, "p2", DbType.Int32, p.Age); // トランザクションを指定してコマンドを実行 var count = database1.ExecuteNonQuery(command); // DB側でふられたIDを取得 var newId = database1.ExecuteScalar(CommandType.Text, "SELECT @@IDENTITY"); // 登録件数と、登録時にふられたIDを表示 Console.WriteLine("database1: inserted: {0}, newId: {1}", count, newId); } var database2 = EnterpriseLibraryContainer.Current.GetInstance <Database>(); Console.WriteLine("2つ目のdatabaseオブジェクト取得 HashCode: {0}", database2.GetHashCode()); for (int i = 0; i < 2; i++) { // 登録対象のデータ var p = new Person { Name = "sakurai", Age = 100 }; // コマンドをSQLから作成 var command = database2.GetSqlStringCommand("INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)"); // パラメータを追加 database2.AddInParameter(command, "p1", DbType.String, p.Name); database2.AddInParameter(command, "p2", DbType.Int32, p.Age); // トランザクションを指定してコマンドを実行 var count = database1.ExecuteNonQuery(command); // DB側でふられたIDを取得 var newId = database2.ExecuteScalar(CommandType.Text, "SELECT @@IDENTITY"); // 登録件数と、登録時にふられたIDを表示 Console.WriteLine("database2: inserted: {0}, newId: {1}", count, newId); } tc.Complete(); } } // Transaction // 例外が出るのでコメントアウト //Console.WriteLine("---------------------------------------"); //{ // using (var tc = new TransactionScope()) // { // // 単純にTransactionScope内で2つのコネクションを開いて閉じる // var conn1 = new SqlCeConnection(ConfigurationManager.ConnectionStrings["SqlCe"].ConnectionString); // conn1.Open(); // conn1.Close(); // var conn2 = new SqlCeConnection(ConfigurationManager.ConnectionStrings["SqlCe"].ConnectionString); // conn2.Open(); // conn2.Close(); // } //} // データの登録ヘルパーメソッド Console.WriteLine("---------------------------------------"); { using (var tc = new TransactionScope()) { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance <Database>(); // 登録対象のデータ var p = new Person { Name = "hanami", Age = 100 }; // 拡張メソッドを使って登録 var count = database.ExecuteUpdate( "INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)", p.Name, p.Age); // DB側で割り振られたIDを取得 var newId = (decimal)database.ExecuteScalar( CommandType.Text, "SELECT @@IDENTITY"); // 結果を表示 Console.WriteLine("inserted: {0}, newId {1}", count, newId); tc.Complete(); } } Console.WriteLine("---------------------------------------"); { var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() // 使用する接続文字列を取得 .ForDatabaseNamed("SqlCe") .AsDefault(); // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance <Database>(); // SQL文を発行してデータを格納 var people = database.ExecuteSqlStringAccessor <Person>( "SELECT Id, Name, Age FROM PERSON ORDER BY ID DESC"); // 結果を表示 foreach (var p in people) { Console.WriteLine("Id: {0}, Name: {1}, Age: {2}", p.Id, p.Name, p.Age); } } }
public override void Initialize() { builder = new ConfigurationSourceBuilder(); configurationStart = builder.ConfigureData(); }
static void Main(string[] args) { // 単純にSQL文を実行 Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance<Database>(); // SQL文を発行してデータを格納 var people = database.ExecuteSqlStringAccessor<Person>( "SELECT Id, Name, Age FROM PERSON ORDER BY ID DESC"); // 結果を表示 foreach (var p in people) { Console.WriteLine("Id: {0}, Name: {1}, Age: {2}", p.Id, p.Name, p.Age); } } // パラメータつきのSQL文 Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance<Database>(); // SQL文を発行してデータを格納 var accessor = database.CreateSqlStringAccessor<Person>( // パラメータつきのSQL文 "SELECT Id, Name, Age FROM PERSON WHERE NAME LIKE @p1 ORDER BY ID DESC", // パラメータのマッピングルール SequenceParameterMapper.Default); // パラメータを指定して実行 var people = accessor.Execute("%mu%"); // 結果を表示 foreach (var p in people) { Console.WriteLine("Id: {0}, Name: {1}, Age: {2}", p.Id, p.Name, p.Age); } } // データの登録 Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance<Database>(); // コネクションを作成 using (var conn = database.CreateConnection()) { conn.Open(); // トランザクションを開始 using (var tran = conn.BeginTransaction()) { // 登録対象のデータ var p = new Person { Name = "hanami", Age = 100 }; // コマンドをSQLから作成 var command = database.GetSqlStringCommand("INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)"); // パラメータを追加 database.AddInParameter(command, "p1", DbType.String, p.Name); database.AddInParameter(command, "p2", DbType.Int32, p.Age); // トランザクションを指定してコマンドを実行 var count = database.ExecuteNonQuery(command, tran); // DB側でふられたIDを取得 var newId = database.ExecuteScalar(tran, CommandType.Text, "SELECT @@IDENTITY"); // 登録件数と、登録時にふられたIDを表示 Console.WriteLine("inserted: {0}, newId: {1}", count, newId); // コミット tran.Commit(); } conn.Close(); } } // Transaction Console.WriteLine("---------------------------------------"); { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 using (var tc = new TransactionScope()) { var database1 = EnterpriseLibraryContainer.Current.GetInstance<Database>(); Console.WriteLine("最初のdatabaseオブジェクト取得 HashCode: {0}", database1.GetHashCode()); for (int i = 0; i < 2; i++) { // 登録対象のデータ var p = new Person { Name = "hanami", Age = 100 }; // コマンドをSQLから作成 var command = database1.GetSqlStringCommand("INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)"); // パラメータを追加 database1.AddInParameter(command, "p1", DbType.String, p.Name); database1.AddInParameter(command, "p2", DbType.Int32, p.Age); // トランザクションを指定してコマンドを実行 var count = database1.ExecuteNonQuery(command); // DB側でふられたIDを取得 var newId = database1.ExecuteScalar(CommandType.Text, "SELECT @@IDENTITY"); // 登録件数と、登録時にふられたIDを表示 Console.WriteLine("database1: inserted: {0}, newId: {1}", count, newId); } var database2 = EnterpriseLibraryContainer.Current.GetInstance<Database>(); Console.WriteLine("2つ目のdatabaseオブジェクト取得 HashCode: {0}", database2.GetHashCode()); for (int i = 0; i < 2; i++) { // 登録対象のデータ var p = new Person { Name = "sakurai", Age = 100 }; // コマンドをSQLから作成 var command = database2.GetSqlStringCommand("INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)"); // パラメータを追加 database2.AddInParameter(command, "p1", DbType.String, p.Name); database2.AddInParameter(command, "p2", DbType.Int32, p.Age); // トランザクションを指定してコマンドを実行 var count = database1.ExecuteNonQuery(command); // DB側でふられたIDを取得 var newId = database2.ExecuteScalar(CommandType.Text, "SELECT @@IDENTITY"); // 登録件数と、登録時にふられたIDを表示 Console.WriteLine("database2: inserted: {0}, newId: {1}", count, newId); } tc.Complete(); } } // Transaction // 例外が出るのでコメントアウト //Console.WriteLine("---------------------------------------"); //{ // using (var tc = new TransactionScope()) // { // // 単純にTransactionScope内で2つのコネクションを開いて閉じる // var conn1 = new SqlCeConnection(ConfigurationManager.ConnectionStrings["SqlCe"].ConnectionString); // conn1.Open(); // conn1.Close(); // var conn2 = new SqlCeConnection(ConfigurationManager.ConnectionStrings["SqlCe"].ConnectionString); // conn2.Open(); // conn2.Close(); // } //} // データの登録ヘルパーメソッド Console.WriteLine("---------------------------------------"); { using (var tc = new TransactionScope()) { // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance<Database>(); // 登録対象のデータ var p = new Person { Name = "hanami", Age = 100 }; // 拡張メソッドを使って登録 var count = database.ExecuteUpdate( "INSERT INTO PERSON(NAME, AGE) VALUES(@p1, @p2)", p.Name, p.Age); // DB側で割り振られたIDを取得 var newId = (decimal)database.ExecuteScalar( CommandType.Text, "SELECT @@IDENTITY"); // 結果を表示 Console.WriteLine("inserted: {0}, newId {1}", count, newId); tc.Complete(); } } Console.WriteLine("---------------------------------------"); { var builder = new ConfigurationSourceBuilder(); builder.ConfigureData() // 使用する接続文字列を取得 .ForDatabaseNamed("SqlCe") .AsDefault(); // Enterprise LibraryのコンテナからDatabaseクラスのインスタンスを取得 var database = EnterpriseLibraryContainer.Current.GetInstance<Database>(); // SQL文を発行してデータを格納 var people = database.ExecuteSqlStringAccessor<Person>( "SELECT Id, Name, Age FROM PERSON ORDER BY ID DESC"); // 結果を表示 foreach (var p in people) { Console.WriteLine("Id: {0}, Name: {1}, Age: {2}", p.Id, p.Name, p.Age); } } }