Как я могу реализовать свое новое поле в качестве условия для существующего индекса в Entity Framework? - PullRequest
0 голосов
/ 22 февраля 2019

У меня проблемы с реализацией мягкого удаления для существующей таблицы с индексом.

Существует индекс «BookDescriptionUniqueOnGenre», который учитывает объединенную уникальность 3 полей в моей таблице «Книга».Я добавил новое поле IsDeleted и хочу, чтобы мой индекс применялся к элементам, которые не были удалены.Есть ли способ добавить условие к этому индексу, которое будет применяться только в том случае, если IsDeleted = false

Я могу добиться аналогичного результата с помощью пользовательского валидатора, однако я бы хотел сделатьэто через код в первую очередь и использование миграций без удаления индекса

[Table("Book", Schema = "fhr")]
public class Book : IEntity
{
    [Required]
    public Guid Id { get; set; }

    [Required, Index("BookDescriptionUniqueOnGenre", 1, IsUnique = true)]
    public Guid AuthorId { get; set; }

    [Required, MaxLength(100), Index("BookDescriptionUniqueOnGenre", 2, IsUnique = true)]
    public string Description { get; set; }

    [Required, Index("BookDescriptionUniqueOnGenre", 3, IsUnique = true)]
    public Genre Genre { get; set; }

    public bool IsDeleted { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...