В моем проекте .NET MVC у меня есть доменные классы с отношением один к одному или нулевым отношением как:
public class Person
{
public int Id { get; set; }
public string FullName { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Address { get; set; }
public string City { get; set; }
public virtual Person Person { get; set; }
[Key, ForeignKey("Person")]
public int PID { get; set; }
}
Это использует EF 6.x, а объект Address использует PID (который является внешним ключом) в качестве столбца идентификации. Этот код автоматически настраивается в EF 6.x без какой-либо явной настройки.
Теперь я портирую это решение на .NET Core 2.1. Здесь EF Core не работает с аннотациями данных EF 6.x. Например, я не могу получить свойство person.Address.City
Похоже, мне нужно настроить его вручную с помощью FluentAPI.
До сих пор я пробовал три разных конфига, один за другим безрезультатно:
//First config
modelBuilder.Entity<Person>()
.HasOne(p => p.Address)
.WithOne(a => a.Person);
//Second config
modelBuilder.Entity<Person>()
.OwnsOne(p => p.Address);
//Third config
modelBuilder.Entity<Person>()
.OwnsOne(p => p.Address)
.OwnsOne(a=>a.Person);
В этом проекте много данных, и его необходимо настроить с использованием существующей структуры сущностей. Пожалуйста, помогите.