Вот моя модель
public class Record
{
public int Id { get; set; }
public int Operator { get; set; }
public bool IsActive { get; set; }
public bool IsSessionActive { get; set; }
}
В основном я создал этот индекс
modelBuilder.Entity<Record>().HasIndex(r => r.Operator )
.HasName("Record_Filtered_Index")
.HasFilter("([IsActive]=(1)) OR ([IsSessionActive]=(1))")
.IsUnique();
Это должно ограничить меня от вставки записи для того же оператора, в то время как любое из логических значений истинно.
я пытался создать индивидуально
modelBuilder.Entity<Record>().HasIndex(r => r.Operator )
.HasName("Record_Filtered_Index")
.HasFilter("([IsActive]=(1)")
.IsUnique();
modelBuilder.Entity<Record>().HasIndex(r => r.Operator )
.HasName("SessionActive_Filtered_Index")
.HasFilter("([IsSessionActive]=(1)")
.IsUnique();
но конечный результат состоял в том, что 1-й фильтр в основном ничего не делает, а 2-й работает как задумано, поэтому он в основном перезаписал его.
Итак, мой вопрос ... Как я могу убедиться, что может быть только одна запись с активным логическим значением для каждого оператора?