Следуя разделу "Первое моделирование кода" в курсе Pluralsight "Начало работы с Entity Framework 5" от Julie Lerman, я создал два POCO классы с отношением один к нулю или: родительский (Пользователь) и дочерний дополнительный (UserDetail).
Диаграмма модели данных пользователя и UserDetail (щелкните для просмотра).
Обратите внимание на диаграмме, что свойство UserId является первичным ключом и внешним ключом для UserDetail.
Соответствующий код:
public class User
{
    //...
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    /* Has a 1:0..1 relationship with UserDetail */
    public virtual UserDetail UserDetail { get; set; }
    //...
}
public class UserDetail
{
    //...
    /* Has a 0..1:1 relationship with User */
    public virtual User User { get; set; }
    [Key, ForeignKey("User")]
    public int UserId { get; set; }
    //...
}
public class EFDbContext : DbContext
{
    public DbSet<User> Users { get; set; }
    //public DbSet<UserDetail> UserDetails { get; set; }  /* Explicit declaration not necessary. Context is aware of UserDetail entity due to 0..1:1 relationship with User */
    public EFDbContext()
    {
        Configuration.ProxyCreationEnabled = true;
        Configuration.LazyLoadingEnabled = true;
    }
}
public class UserRepository : IUserRepository
{
    private EFDbContext _context = new EFDbContext();
    public void Delete(User entity)
    {
        entity = _context.Users.Find(entity.UserId);
        //...
        _context.Users.Remove(entity);
        _context.SaveChanges();
        //...
    }
}
Когда метод Delete() в классе UserRepository вызывается, он не удаляет пользовательскую запись в базе данных, потому что внешний ключ в UserDetail не имеет включенного каскадного удаления.
Операция DELETE противоречила ограничению REFERENCE "FK_dbo.UserDetail_dbo.User_UserId".
Как включить каскадные удаления для отношений "один-к-нуле" или "один" с использованием кода Entity Framework First (чтобы удалить пользователя автоматически удалил UserDetail)?