using System; public class Person { public int Id { get; set; } // public int RelativeId { get; set; } public Relative Relative { get; set; } // public int OtherId { get; set; } public Other Other { get; set; } } public class Other { public int Id { get; set; } // public Person Person { get; set; } } public class Relative { public int Id { get; set; } // public Person Person { get; set; } } //============================================// public class CemeteryContext : DbContext { public DbSet People { get; set; } public DbSet Others { get; set; } public DbSet Relatives { get; set; } protected override void OnModelCreating(ModelBuilder mb) { mb.Entity() .HasOne(o => o.Person) .WithOne(p => p.Other) .HasForeignKey(p => p.OtherId); mb.Entity() .HasOne(p => p.Person) .WithOne(r => r.Relative) .HasForeignKey(r => r.RelativeId); } }