예제 #1
0
        private static void ClearDatabase(TransaviaDbContext dbContext)
        {
            dbContext.Database.ExecuteSqlCommand(@"
                    -- disable all constraints
                    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

                    -- delete data in all tables
                    EXEC sp_MSForEachTable 'DELETE FROM ?'

                    -- enable all constraints
                    EXEC sp_MSForEachTable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all'");
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting database seeding");

            Arguments.Populate();

            var optionsBuilder = new DbContextOptionsBuilder <TransaviaDbContext>();

            optionsBuilder.UseSqlServer(ConnectionString);

            using (var feed = new HttpFeedDataProvider <AirportData>(Feed, JsonConvert.DeserializeObject <List <AirportData> >))
                using (var dbContext = new TransaviaDbContext(optionsBuilder.Options))
                {
                    dbContext.Database.EnsureCreated();
                    ClearDatabase(dbContext);

                    var seeder = new AirportsSeeder(dbContext, feed);
                    seeder.SeedAsync(x => x.continent == "EU", CancellationToken.None).Wait();
                }

            Console.WriteLine("Done");
        }
예제 #3
0
 public AirportsSeeder(TransaviaDbContext ctx, HttpFeedDataProvider <AirportData> airportsProvider)
 {
     _ctx = ctx;
     _airportsProvider = airportsProvider;
 }
예제 #4
0
 public AirportsRepository(TransaviaDbContext ctx, IEventDispatcher eventDispatcher) : base(ctx, eventDispatcher)
 {
 }
예제 #5
0
 public CountriesRepository(TransaviaDbContext ctx, IEventDispatcher eventDispatcher) : base(ctx, eventDispatcher)
 {
 }
예제 #6
0
 protected RepositoryBase(TransaviaDbContext ctx, IEventDispatcher eventDispatcher)
 {
     _ctx             = ctx;
     _eventDispatcher = eventDispatcher;
 }