Я пытаюсь обновить свою базу данных с помощью команды «update-database» в консоли диспетчера пакетов, но у меня возникает такая ошибка:
The child/dependent side could not be determined for the one-to-one
relationship between 'Country.CapitalCity' and 'CapitalCity.Country'. To
identify the child/dependent side of the relationship, configure the foreign
key property. If these navigations should not be part of the same
relationship configure them without specifying the inverse. See
http://go.microsoft.com/fwlink/?LinkId=724062 for more details.
Мои классы модели выглядят так:
public class Country
{
public int ID { get; set; }
public string Name { get; set; }
public long Population { get; set; }
public int CapitalCityID { get; set; }
public CapitalCity CapitalCity { get; set; }
}
public class CapitalCity
{
public int ID { get; set; }
public int Name { get; set; }
public int CountryID { get; set; }
public Country Country { get; set; }
}
После поиска информации об этой проблеме я добавил следующий код в свой DbContextModelSnapshot, но у меня все еще есть проблема.
modelBuilder.Entity<Country>()
.HasOne(a => a.CapitalCity)
.WithOne(a => a.Country)
.HasForeignKey<CapitalCity>(c => c.CountryID);
Какая у меня ошибка?





Вы должны поместить приведенный ниже код в свой класс DBContext, а не в класс SnapShot. Не изменяйте класс Snapshot, это автоматически созданный класс.
modelBuilder.Entity<Country>()
.HasOne(a => a.CapitalCity)
.WithOne(a => a.Country)
.HasForeignKey<CapitalCity>(c => c.CountryID);
Как вы сказали, я поместил этот код в метод OnModelCreating в моем DbContext, но нет, я получаю эту ошибку в консоли: Project 'Default' не найден.
Вам нужно выбрать свой основной проект в качестве запускаемого проекта .. и убедитесь, что вы выбрали проект, который имеет класс dbcontext в качестве проекта по умолчанию в консоли диспетчера пакетов.
Не изменяйте
DbContextModelSnapshot, поместите этот код вOnModelCreatingкласса, производного от контекста базы данных, а затем выполните миграцию.