示例#1
0
        public void Can_use_ddl_ops_when_using_secure_connection_string_with_sql_server_authentication_and_eager_context()
        {
            var connectionStringBuilder
                = new SqlConnectionStringBuilder
                {
                DataSource          = ".\\sqlexpress",
                UserID              = "EFTestUser",
                Password            = "******",
                InitialCatalog      = "PersistSecurityInfoContext",
                PersistSecurityInfo = false
                };

            var modelBuilder = new DbModelBuilder();

            modelBuilder.Entity <PersistEntity>().ToTable(DateTime.Now.Ticks.ToString());
            var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo);
            var entityConnection
                = new EntityConnection(model.DatabaseMapping.ToMetadataWorkspace(), new SqlConnection(connectionStringBuilder.ToString()));

            var objectContext = new ObjectContext(entityConnection);

            var context = new PersistSecurityInfoContext(objectContext, true);

            if (context.Database.Exists())
            {
                context.Database.Delete();
            }

            context.Database.Create();

            context.Set <PersistEntity>().ToList();

            context.Database.Delete();
        }
        public void Can_use_ddl_ops_when_using_secure_connection_string_with_sql_server_authentication_and_eager_context()
        {
            EnsureEfTestUserExists();
            var connectionString
                = SimpleConnectionStringWithCredentials <PersistSecurityInfoContext>(
                      "EFTestUser",
                      "Password1");

            var modelBuilder = new DbModelBuilder();

            modelBuilder.Entity <PersistEntity>().ToTable(DateTime.Now.Ticks.ToString());
            var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo);
            var entityConnection
                = new EntityConnection(model.DatabaseMapping.ToMetadataWorkspace(), new SqlConnection(connectionString));

            var objectContext = new ObjectContext(entityConnection);

            var context = new PersistSecurityInfoContext(objectContext, true);

            try
            {
                context.Database.Delete();

                context.Database.Create();

                Assert.Equal(
                    new SqlConnectionStringBuilder(connectionString).Password,
                    new SqlConnectionStringBuilder(context.Database.Connection.ConnectionString).Password);

                context.Set <PersistEntity>().ToList();

                context.Database.Delete();
            }
            finally
            {
                context.Database.Delete();
            }
        }