Когда я обновляю базу данных из миграции, которая загружает данные о странах, городах и аэропортах, этот процесс занимает около 5 минут.
В методе OnModelCreating () моего AppContext я беру эти данные из XML-документа, а размер сгенерированного файла миграции составляет около 100 тыс. Строк. Я не уверен, что выбрал правильный путь, потому что обновление базы данных происходит слишком медленно. Если я просто удаляю базу данных, при запуске программы метод OnModelCreating () загружает данные из документов довольно быстро.
контекст приложения:
protected override void OnModelCreating(ModelBuilder builder)
{
var airports = new XmlSerializer(typeof(List<Airport>)).Deserialize(new FileStream(Resources.xmlAirportsList, FileMode.Open));
builder.Entity<Airport>().HasData((List<Airport>)airports);
var cities = new XmlSerializer(typeof(List<City>)).Deserialize(new FileStream(Resources.xmlCitiesList, FileMode.Open));
builder.Entity<City>().HasData((List<City>)cities);
var countries = new XmlSerializer(typeof(List<Country>)).Deserialize(new FileStream(Resources.xmlCountriesList, FileMode.Open));
builder.Entity<Country>().HasData((List<Country>)countries);
}
Страна:
public int Id { get; set; }
public string Name { get; set; }
public string RegionName { get; set; }
[XmlIgnore]
public ICollection<City> Cities { get; set; }
Город:
public int Id { get; set; }
public string Name { get; set; }
public float GmtOffset { get; set; }
public int CountryId { get; set; }
[XmlIgnore]
public Country Country { get; set; }
Аэропорт:
public int Id { get; set; }
public string Name { get; set; }
public float latitude { get; set; }
public float longitude { get; set; }
public int CityId { get; set; }
[XmlIgnore]
public City City { get; set; }
UPD. Когда я использую myDbContext.Database.Migrate (), база данных создается довольно быстро, но разве она не эквивалентна update-database?