Мягкое удаление многих отношений

Единственный вопрос, который я нашел наиболее похожим на мой вопрос, это здесь, но он не ответил на мой вопрос. У меня есть эта модель:

public class Profile
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsActive { get; set; }  
    public bool IsDeleted {get; set; }
    public virtual ICollection<Program> AllowedPrograms { get; set; }
    public virtual ICollection<Program> DisAllowedPrograms { get; set; }
}

и это:

public class Program
{
    public int Id { get; set; }
    public string DisplayName { get; set; }     
    public bool IsActive { get; set; }
    public bool IsDeleted {get; set; }
    public virtual ICollection<Profile> AllowedProfiles { get; set; }
    public virtual ICollection<Profile> DisAllowedProfiles { get; set; }

}

Если я реализую мягкое удаление с помощью IsDeleted поле, что происходит с записями в ProfileProgram Таблица? Они удалены слишком неявно? (Я полагаю, что в этой модели есть два отношения "многие ко многим"). Если я использую фильтры структуры лица, который находится здесь.

Или я должен сам создать промежуточную таблицу и добавить IsDeleted поле к этому? Также этот подход, кажется, сильно меняет мой код, который я действительно ищу альтернативный метод.

1 ответ

Да, таблица ProfileProgram не удаляется автоматически. Да, вы должны создать таблицу IsDeleted (не поле).

Другие вопросы по тегам