大家好,我对数据播种有意见。当我尝试为这个实体播种时:
modelBuilder.Entity<Place>().HasData(new Place
{
Id = Guid.NewGuid().ToString(),
Name = "Europe",
PlaceIsContainedIn = new Place
{
Id = Guid.NewGuid().ToString(),
IdPlaceIsContainedIn = Guid.NewGuid().ToString(),
Name = "Bulgaria",
LevelNo = 0,
}
});
出现以下错误:
无法添加实体类型“Place”的种子实体,因为它设置了导航“PlaceIsContainerIn”。若要为关系设定种子,请将实体种子添加到“Place”并指定外键值{“IdPlaceIsContainerIn”}。
我有这个Place类:
public class Place
{
public string Id { get; set; } = Guid.NewGuid().ToString();
[ForeignKey(nameof(PlaceIsContainedIn))]
public string? IdPlaceIsContainedIn { get; set; }
public Place PlaceIsContainedIn { get; set; }
public string Name { get; set; }
public int LevelNo { get; set; }
public ICollection<Contact> ContinentContacts { get; set; } = new HashSet<Contact>();
public ICollection<Contact> CountryContacts { get; set; } = new HashSet<Contact>();
public ICollection<Contact> CityContacts { get; set; } = new HashSet<Contact>();
}
这是我的背景:
modelBuilder.Entity<Place>().Property(x => x.Name).HasColumnType("nvarchar(50)");
modelBuilder.Entity<Place>().Property(x => x.LevelNo).HasColumnType("tinyint");
modelBuilder.Entity<Place>().HasOne(x => x.PlaceIsContainedIn).WithMany().OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<Place>().Property(x => x.IdPlaceIsContainedIn).IsRequired(false);
请,如果有人知道如何解决这个问题,如果你能和我分享,我会很高兴。