2017-12-30 19 views
2

ich dieses Modell haben:Wie kann ich verhindern EF Kern aus einem gefilterten Index auf einer Spalte von -zulässige Erstellen

public class Subject 
{ 
    public int Id { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string Name { get; set; } 

    public int LevelId { get; set; } 

    [ForeignKey("LevelId")] 
    public Level Level { get; set; } 

    [Column(TypeName = "datetime2")] 
    public DateTime? DeletedAt { get; set; } 
} 

und Index über Fluent API konfiguriert:

entityBuilder.HasIndex(e => new { e.LevelId, e.Name, e.DeletedAt }) 
    .IsUnique(); 

Es ist eine Tabelle mit einer Schaffung eindeutiger gefilterter Index Wie kann ich verhindern, dass EF den Filter hinzufügt? Ich möchte nur den Index und möchte nicht gefiltert werden.

Antwort

4

Erstellen des gefilterten Index mit Ausnahme der Werte NULL ist das Standardverhalten des EF-Kerns für eindeutige Indizes, die Nullable-Spalten enthalten.

können Sie HasFilter fließend API verwenden, um die Filterbedingung zu ändern, oder schalten Sie ihn, indem null als sql Argument aus:

entityBuilder.HasIndex(e => new { e.LevelId, e.Name, e.DeletedAt }) 
    .IsUnique() 
    .HasFilter(null); 
Verwandte Themen