diff --git a/DataAccessTier/App.config b/DataAccessTier/App.config index ce2fb3979398857f651f7269bb031ddf0fcae31b..0e3baf2dacb5d8938368c8e305d30c165df98067 100644 --- a/DataAccessTier/App.config +++ b/DataAccessTier/App.config @@ -10,9 +10,6 @@ <section name="DataAccessLayer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> - <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > - <section name="HaaSMiddleware.DataAccessTier.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> - </sectionGroup> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> @@ -40,11 +37,4 @@ </setting> </DataAccessLayer.Properties.Settings> </applicationSettings> - <userSettings> - <HaaSMiddleware.DataAccessTier.Properties.Settings> - <setting name="CustomMiddlewareContext" serializeAs="String"> - <value>Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;</value> - </setting> - </HaaSMiddleware.DataAccessTier.Properties.Settings> - </userSettings> </configuration> \ No newline at end of file diff --git a/DataAccessTier/MiddlewareContext.cs b/DataAccessTier/MiddlewareContext.cs index 25c394d649b487fbeed8a9b2c99980e45c2dbff8..78d0d8496c93dd4a99a313a8e41a34028533c743 100644 --- a/DataAccessTier/MiddlewareContext.cs +++ b/DataAccessTier/MiddlewareContext.cs @@ -19,7 +19,9 @@ namespace HaaSMiddleware.DataAccessTier internal class MiddlewareContext : DbContext { - public MiddlewareContext() : base(Properties.Settings.Default.CustomMiddlewareContext) + internal static string EFConnectionString = Properties.Settings.Default.MiddlewareContext; + + public MiddlewareContext() : base(EFConnectionString) { //"name=MiddlewareContext") { diff --git a/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs b/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs index 37ed0804b4b7e15ff1c104d550b7803fe25a1c8f..ec5fc3bdf0389c4b68a63264e24db5f6e8e60573 100644 --- a/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs +++ b/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs @@ -1,5 +1,6 @@ using System.Data.Entity; using System.Data.Entity.Migrations; +using System.Linq; namespace HaaSMiddleware.DataAccessTier.Migrations { @@ -18,16 +19,24 @@ namespace HaaSMiddleware.DataAccessTier.Migrations bool createDatabase = !context.Database.Exists(); var migrator = new DbMigrator(_migrationConfiguration); + var pending = migrator.GetPendingMigrations(); + + if (!context.Database.CompatibleWithModel(false)) + { + System.Console.WriteLine("Migrating database:\t" + context.Database.Connection.ConnectionString); + migrator.Update(); + } - //if (migrator.GetPendingMigrations().Any()) - migrator.Update(); base.InitializeDatabase(context); if (createDatabase) { + System.Console.WriteLine("Creating database:\t" + context.Database.Connection.ConnectionString); Seed(context); + System.Console.WriteLine("Seeding database:\t" + context.Database.Connection.ConnectionString); context.SaveChanges(); + System.Console.WriteLine("Saving changes for database:\t" + context.Database.Connection.ConnectionString); } } } diff --git a/DataAccessTier/Properties/Settings.Designer.cs b/DataAccessTier/Properties/Settings.Designer.cs index 47469f25e5edab84dbde2e047351591f152c1bb4..e8414cf7ffcfc949545b68c847da0295d8bbf423 100644 --- a/DataAccessTier/Properties/Settings.Designer.cs +++ b/DataAccessTier/Properties/Settings.Designer.cs @@ -41,17 +41,5 @@ namespace HaaSMiddleware.DataAccessTier.Properties { return ((string)(this["MiddlewareContext"])); } } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;")] - public string CustomMiddlewareContext { - get { - return ((string)(this["CustomMiddlewareContext"])); - } - set { - this["CustomMiddlewareContext"] = value; - } - } } } diff --git a/DataAccessTier/Properties/Settings.settings b/DataAccessTier/Properties/Settings.settings index fcc42ca799d760dda0ac4f21860422963efed1b5..76b76ad1721c8ae67449e28a232ab8f64fb31112 100644 --- a/DataAccessTier/Properties/Settings.settings +++ b/DataAccessTier/Properties/Settings.settings @@ -13,8 +13,5 @@ </SerializableConnectionString></DesignTimeValue> <Value Profile="(Default)">Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;</Value> </Setting> - <Setting Name="CustomMiddlewareContext" Type="System.String" Scope="User"> - <Value Profile="(Default)">Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;</Value> - </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs b/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs index dee8357414f612afc368cf46297ef07d877ed2b6..b0270c2f2ab8c34615c9b8fc53861f4ea33e5f7e 100644 --- a/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs +++ b/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs @@ -21,8 +21,8 @@ namespace HaaSMiddleware.DataAccessTier.UnitOfWork { public DatabaseUnitOfWork(string connString) { - Properties.Settings.Default.CustomMiddlewareContext = connString; - //Properties.Settings.Default.Save(); + MiddlewareContext.EFConnectionString = connString; + this.context = new MiddlewareContext(); if (!Enum.TryParse(ConfigurationManager.AppSettings["DatabaseRepositoryType"], out this.repositoryType)) this.repositoryType = RepositoryType.LinqToEntities; diff --git a/MiddlewareTests/MiddlewareTests.csproj b/MiddlewareTests/MiddlewareTests.csproj index 5c2752997cb5a425928a03ffb5fe43a68c9fbc87..df9e38ff974328cd7a1013438b6bcc065a214aed 100644 --- a/MiddlewareTests/MiddlewareTests.csproj +++ b/MiddlewareTests/MiddlewareTests.csproj @@ -56,6 +56,7 @@ <Reference Include="System" /> <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Core" /> + <Reference Include="System.Data" /> </ItemGroup> <ItemGroup> <Compile Include="UnitTest1.cs" /> diff --git a/MiddlewareTests/UnitTest1.cs b/MiddlewareTests/UnitTest1.cs index 4bcd15a6dc8a806f61e3f0610e3eec703d308b7b..ff026d3666c9228fe96ebd29b6548e329c6b9245 100644 --- a/MiddlewareTests/UnitTest1.cs +++ b/MiddlewareTests/UnitTest1.cs @@ -1,4 +1,5 @@ using System; +using System.Data.SqlClient; using HaaSMiddleware.DataAccessTier.UnitOfWork; using HaaSMiddleware.DomainObjects.ClusterInformation; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -11,13 +12,23 @@ namespace MiddlewareTests [TestMethod] public static void Main () { - TestCustomDb("Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;"); - TestCustomDb("Data Source=DELLG5;Database=HaaS_Middleware_2;integrated security=True;"); + TestCustomDb("DELLG5","HaaS_Middleware_1"); + TestCustomDb("DELLG5","HaaS_Middleware_2" + + ""); } - private static void TestCustomDb(string connString) + private static void TestCustomDb(string dataSource, string database) { - DatabaseUnitOfWork uof = new DatabaseUnitOfWork(connString); + SqlConnectionStringBuilder sqlConnStringBuilder = new SqlConnectionStringBuilder + { + DataSource = dataSource, + InitialCatalog = database, + IntegratedSecurity = true + }; + + string connStr = sqlConnStringBuilder.ConnectionString; + Console.WriteLine("Connection: " + connStr); + DatabaseUnitOfWork uof = new DatabaseUnitOfWork(connStr); foreach (Cluster c in uof.ClusterRepository.GetAll()) { Console.WriteLine(c);