В случае отношения one-to-one--or-zero
вам не нужны дополнительные PrimaryKey
вместе с ForeignKey
в зависимой таблице.Primarykey
таблицы Principle
будет одновременно PrimaryKey
и ForeignKey
зависимой таблицы.
Итак, напишите свой Address
класс модели следующим образом:
public class Address
{
public int StudentId { get; set; } // Here StudentId is the PrimaryKey and ForeignKey at the same time.
public string Street{ get; set; }
public Student Student { get; set; }
}
Затем в конфигурации Fluent API
:
public class AddressConfiguration : IEntityTypeConfiguration<Address>
{
public void Configure(EntityTypeBuilder<Address> builder)
{
builder.HasKey(u => u.StudentId)
builder.HasOne(u => u.Student)
.WithOne(b => b.Address)
.HasForeignKey<Address>(b => b.StudentId);
}
}