У меня проблемы с отправкой данных в мою базу данных по методу OnModelCreating
.
Я хочу заполнить базу данных Странами , Состояниями и Города , но я не знаю, как это сделать, если у них есть отношения один ко многим .
Модели:
public class City
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual State State { get; set; }
}
public class State
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<City> Cities { get; set; }
public virtual Country Country { get; set; }
}
public class Country
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<State> States { get; set; }
}
Контекст:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// ....
modelBuilder.Entity<State>()
.HasMany(p => p.Cities)
.WithOne(c => c.State)
.IsRequired();
modelBuilder.Entity<Country>()
.HasMany(s => s.States)
.WithOne(s => s.Country)
.IsRequired();
var BsAs = new State
{
Id = 1,
Name = "Buenos Aires",
};
var Argentina = new Country
{
Id = 1,
Name = "Argentina",
States = new[] { BsAs }
};
modelBuilder.Entity<Country>(s => {
s.HasData(Argentina);
s.OwnsMany(e => e.States).HasData(BsAs);
});
}
Вышеприведенный код выдает:
Тип 'State' нельзя пометить как принадлежащий, поскольку он не принадлежиттип сущности с таким именем уже существует.
, когда я пытаюсь AddMigration .
Моя цель - заполнить базу данных одной страной и соответствующими ей государствами. и города.