Создать уникальное ограничение на столбец - PullRequest
2 голосов
/ 24 июня 2019

У меня есть эта модель

public class Record
{
    public int Id {get;set;}
    public int Client {get;set;}
    public bool IsActive {get;set;}
}

Я хочу создать ограничение для столбца IsActive.

Для каждого клиента может быть активна только 1 запись.

Как можноя достигаю этого на модели?

1 Ответ

2 голосов
/ 24 июня 2019

Вам необходимо создать отфильтрованный индекс для вашего столбца, если ядро ​​ef имеет фильтр индекса , и вы можете настроить его в своем dbcontext с переопределением метода OnModelCreating.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<Record>(entity =>
   {
       entity.HasIndex(e => e.Client)
        .HasName("Record_Filtered_Index")
        .HasFilter("([IsActive]=(1))");
   });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...