コード例 #1
0
        public static void SeedData(NorthwindContext northwindContext, MasterContext masterContext)
        {
            bool databaseExists = (northwindContext.GetService <IDatabaseCreator>() as RelationalDatabaseCreator).Exists();

            if (!databaseExists)
            {
                string filePath = Path.Combine(AppContext.BaseDirectory, "Seed", "Northwind.sql");
                string seedSql  = File.ReadAllText(filePath);

                string masterDbConnectionString = masterContext.Database.GetDbConnection().ConnectionString;

                // Overview (SMO): https://docs.microsoft.com/en-us/sql/relational-databases/server-management-objects-smo/overview-smo?view=sql-server-2017
                using (SqlConnection connection = new SqlConnection(masterDbConnectionString))
                {
                    Server server = new Server(new ServerConnection(connection));
                    //https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2014/ms199350%28v%3dsql.120%29
                    server.ConnectionContext.ExecuteNonQuery(seedSql);
                }

                //var batches = SplitSqlIntoBatches(databaseSql);

                //using (var masterContext = new MasterContext())
                //{
                //    for (int i = 0; i < batches.Count; i++)
                //    {
                //        masterContext.Database.ExecuteSqlCommand(batches[i]);
                //    }

                //    masterContext.SaveChanges();
                //}
            }
        }
コード例 #2
0
        public void RevertMigrations()
        {
            var optionsBuilder = new DbContextOptionsBuilder<NorthwindContext>();
            optionsBuilder.UseMySql("Server=epam-corewsvm16.northeurope.cloudapp.azure.com;Database=Northwind;User=user;Password=123;Compress=true",
                opt =>
                {
                    opt.CommandTimeout(200);
                });

            var context = new NorthwindContext(optionsBuilder.Options);

            context.GetService<IMigrator>().Migrate("Init");
        }
コード例 #3
0
        private NorthwindContext CreateContext(params object[] values)
        {
            var context = new NorthwindContext(
                _fixture.BuildOptions(
                    new ServiceCollection()
                    .AddScoped <IRelationalCommandBuilderFactory, BadDataCommandBuilderFactory>()));

            var badDataCommandBuilderFactory
                = (BadDataCommandBuilderFactory)context.GetService <IRelationalCommandBuilderFactory>();

            badDataCommandBuilderFactory.Values = values;

            return(context);
        }
コード例 #4
0
        public virtual void State_manager_not_loaded()
        {
            StateManagerProxy.IsInitialized = false;

            using (var context = new NorthwindContext(
                       Fixture.BuildOptions(
                           new ServiceCollection()
                           .AddScoped <IStateManager, StateManagerProxy>())))
            {
                context.Set <Customer>().AsNoTracking().ToList();
                Assert.False(StateManagerProxy.IsInitialized);

                context.GetService <IStateManager>();
                Assert.True(StateManagerProxy.IsInitialized);
            }
        }