Кодекс Entity Framework (EF) удаление первого каскада для отношения «один к нулю или один»

После "Code First Modeling " разделМногоплановость "Начало работы с Entity Framework 5 " курс Джули ЛерманЯ создал два класса POCO содин в ноль или один год отношения: родитель (пользователь) инеобязательный ребенок (UserDetail).

Схема модели данных User и 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 Users { get; set; }
    //public DbSet 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 (чтобы при удалении пользователя автоматически удалялся UserDetail)?

Ответы на вопрос(3)

Ваш ответ на вопрос