Когда я добавляю новый класс в свой домен и добавляю его в мой DBContext, например:
Я добавляю этот класс
namespace Zoo.Domain
{
[Table("Owner")]
public partial class Owner
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
public string Email { get; set; }
public virtual ICollection<Animal> Animals { get; set; }
}
}
И добавляю это в мой класс Animal:
public virtual ICollection<Owner> Owners { get; set; }
И добавьте это в мой DBContext:
public virtual DbSet<Owner> Owners { get; set; }
И затем я добавлю новую миграцию, выполнив команду add -igration AddAnimalOwners и команду update-database в Консоль диспетчера пакетов.
EntityFrameWork, похоже, создает для меня отношения между Animal и Owner, но если это так, почему существует ModelBuilder и когда он мне понадобится при обновлении базы данных? Например, когда я впервые создал свою базу данных, в моем классе DBContext появился следующий код:
modelBuilder.Entity<Animal>()
.Property(e => e.Name)
.IsUnicode(false);
modelBuilder.Entity<Animal>()
.Property(e => e.Type)
.IsUnicode(false);
modelBuilder.Entity<Animal>()
.Property(e => e.ImgUrl)
.IsUnicode(false);
modelBuilder.Entity<Animal>()
.HasMany(e => e.Bookings)
.WithMany(e => e.Animals)
.Map(m => m.ToTable("Animal_has_booking").MapLeftKey("AnimalID").MapRightKey("BookingID"));
Похоже, что он также не генерирует построитель моделей для каждой модели в моем домене, когда я впервые создал свою базу данных