Я боролся с этим почти весь день, и, конечно, я жду, чтобы спросить здесь, прежде чем, наконец, выяснить это!
В дополнение к реализации «Один к одному», как показано в этом блоге, мне также нужно было использовать свободный API, чтобы указать «многие ко многим», поскольку одного соглашения было недостаточно при наличии отношения «один к одному».
modelBuilder.Entity<Customer>().HasRequired(x => x.PrimaryMailingAddress)
.WithMany()
.HasForeignKey(x => x.PrimaryMailingAddressID)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Address>()
.HasRequired(x => x.Customer)
.WithMany(x => x.Addresses)
.HasForeignKey(x => x.CustomerID);
А вот и последняя модель в базе данных: