当我从迁移中更新有关国家,城市和机场数据的数据库时,此过程大约需要5分钟。
在我的AppContext的OnModelCreating()方法中,我从XML文档中获取此数据,并且生成的迁移文件大小约为10万行。我不确定选择正确的方法,因为数据库更新太慢。如果我只是删除数据库,则在运行程序时,OnModelCreating()方法将相当快地从文档中加载数据。
AppContext:
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吗?