EF Core 2 картографические отношения - PullRequest
0 голосов
/ 22 октября 2019
public class MobilePhone{
    public int Id {get; set;}
    public string Name { get; set; }
    public Owner Owner { get; set; }
}

public class Owner{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public ICollection<City> Cities { get;  set; }
}

public class City
{
    public int Id {get; set;}
    public string Name { get;  set; }        
    public Owner Owner { get;  set; }
}


public class OwnerConfiguration : IEntityTypeConfiguration<Owner>
{
    public void Configure(EntityTypeBuilder<Owner> builder)
    {
        builder.ToTable("Owner");
        builder.HasKey(x => x.Id);
        builder.Property(x => x.Id).HasColumnName("Id").ValueGeneratedOnAdd();
        builder.Property(x => x.FirstName);
        builder.Property(x => x.LastName);
        builder.HasMany(x => x.Cities);
    }
}

Нужно ли устанавливать PK явно или это будет установлено соглашением?

Как правильно сопоставить классы City и MobilePhone?

1 Ответ

0 голосов
/ 22 октября 2019

Соглашение Entity Framework для первичных ключей:

Ваш класс определяет свойство с именем «ID» или «Id» или именем класса, за которым следуют «ID» или «Id». Чтобы явно установитьЧтобы быть первичным ключом, вы можете использовать метод HasKey. В следующем примере метод HasKey используется для настройки первичного ключа InstructorID для типа OfficeAssignment.

    modelBuilder.Entity<OfficeAssignment>().HasKey(t => t.InstructorID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...