Я хочу создать объекты, которые можно использовать в качестве данных заполнения.Но я получаю стек, когда я прихожу к многим к одному столу.Я пробовал также отношения многие ко многим, но каждый раз, когда я получаю стеки к одной и той же точке (многие к одному).Если это один ко многим, это не проблема:
Соотношение таблиц базы данных
Коды создания таблиц:
public class CorporateCustomer
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CorporateCutomerId { get; set; }
[Required]
[MinLength(5, ErrorMessage = "Customer name cann't be less then 5 charecter !")]
public string Name { get; set; }
public virtual ICollection<CorporateCustomerContact> Contacts{ get; set; }
public virtual ICollection<CorporateCustomerAddress> Addresses { get; set; }
public virtual ICollection<CorporateCustomerFleet> Fleets { get; set; }
}
public class CorporateCustomerAddress
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int AddressId { get; set; }
[Required]
[MaxLength(30, ErrorMessage = "House Number needs to be less then 30 charecter in length")]
public string HouseNo { get; set; }
[Required]
[MaxLength(20, ErrorMessage = "Road name needs to be less then 20 charecter")]
public string Road { get; set; }
[Required]
[MaxLength(20, ErrorMessage = "City name needs to be less then 20 charecter")]
public string City { get; set; }
[Required]
[StringLength(10, MinimumLength = 3, ErrorMessage = "Post code needs to be between 3 to 10 charecter in length")]
public string PostCode { get; set; }
[Required]
[MaxLength(20, ErrorMessage = "Country name cannot be more than 20 charecter in length")]
public string Country { get; set; }
public bool IsDeleted { get; set; }
// Relation with corporate customer
public int CorporateCutomerId { get; set; }
public CorporateCustomer CorporateCutomer { get; set; }
}
Я пробовал решение сКласс ModelBuilder выглядит следующим образом:
public static void SeedData(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<CorporateCustomer>().HasData(new CorporateCustomer
{
CorporateCutomerId = 1,
Name = "Micro Tech",
Addresses = new List<CorporateCustomerAddress>()
{
modelBuilder.Entity<CorporateCustomerAddress>().HasData (
new CorporateCustomerAddress
{
AddressId = 1,
HouseNo = "36/B",
Road = "Lalkha Road, Fatullah",
City = "Dhaka",
PostCode = "14221"
})
}
});
}
Попытка DbContext на самом деле не вставляет в базу данных:
public static void SeedData(this ApplicationDbContext context)
{
var CorporateCustomerFleet = new List<CorporateCustomerFleet>()
{
new CorporateCustomerFleet
{
CorporateCutomer = new CorporateCustomer()
{
Name = "Tech Realm",
Contacts = new List<CorporateCustomerContact>()
{
new CorporateCustomerContact()
{
Contact = "0088015AV757501",
},
new CorporateCustomerContact()
{
Contact = "0088018AB030022",
}
},
Addresses = new List<CorporateCustomerAddress>()
{
new CorporateCustomerAddress()
{
HouseNo = "36/B",
Road = "Fatullah, Lalkha Road",
City = "Dhaka"
}
}
}
}
};
Context.CorporateCustomerFleet.AddRange(CorporateCustomerFleet );
Context.SaveChanges();
}