У меня следующая ситуация, мой дизайн выглядит следующим образом, и в базе данных уже есть некоторые данные.
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=database.db");
}
}
public class MyEntity
{
public int MyEntityId { get; set; }
public int MetaEntityId { get; set; }
public MetaEntity MetaEntity { get; set; }
}
public class MetaEntity
{
public int MetaEntityId { get; set; }
}
Позже я понял, что это была моя ошибка, и дизайн действительно должен был быть:
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=database.db");
}
}
public class MyEntity
{
public int MyEntityId { get; set; }
public MetaEntity MetaEntity { get; set; }
}
public class MetaEntity
{
public int MetaEntityId { get; set; }
public int MyEntityId { get; set; }
public MyEntity MyEntity { get; set; }
}
Каков наилучший способ применить эту миграцию без потери отношений между сущностями?Есть ли способ внутри метода Migrations Up (), чтобы запомнить отношения, изменить схему БД и затем повторно применить отношения?