Я все еще изучаю EF Core, и у меня возникает ошибка при попытке вставить только пользовательские данные (без BusinessUserProfile и BusinessCompany) в базу данных.У меня есть следующие таблицы: User, BusinessUserProfile и BusinessCompany.Отношение: у пользователя есть один BusinessUserProfile, у BusinessCompany есть несколько BusinessUserProfile.
Мои классы создаются следующим образом:
Класс модели пользователя:
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public BusinessUserProfile BusinessUserProfile { get; set; }
public User()
{
BusinessUserProfile = new BusinessUserProfile();
}
}
Класс модели BusinessUserProfile:
public class BusinessUserProfile
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public BusinessCompany BusinessCompany { get; set; }
public int BusinessCompanyId { get; set; }
public User User { get; set; }
public int UserId { get; set; }
}
}
Класс модели BusinessCompany:
public class BusinessCompany
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<BusinessUserProfile> BusinessUserProfiles { get; set; }
public BusinessCompany()
{
BusinessUserProfiles = new Collection<BusinessUserProfile>();
}
}
DataContext.cs:
modelBuilder.Entity<User>()
.HasOne(u => u.BusinessUserProfile)
.WithOne(bup => bup.User)
.HasForeignKey<BusinessUserProfile>(bup => bup.UserId);
modelBuilder.Entity<BusinessCompany>()
.HasMany(bc => bc.BusinessUserProfiles)
.WithOne(bup => bup.BusinessCompany)
.HasForeignKey(bup => bup.BusinessCompanyId);
Когда я добавляю пользователя в базу данных,я получил сообщение об ошибке: MySqlException: невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (mydb
. businessuserprofiles
, CONSTRAINT FK_BusinessUserProfiles_BusinessCompanies_BusinessCompanyId
FOREIGN KEY (BusinessCompanyId
) ССЫЛКИ businesscompanies
(id
) ВКЛУДАЛИТЬ C).
Может кто-нибудь посоветовать мне это?