wake-up-neo.net

Ist es möglich, mithilfe von Entity Framework Code First eine eindeutige Einschränkung festzulegen?

Ich möchte die Eindeutige Einschränkung in einer Tabelle erzwingen, für die ich Entity Framework Code-First verwende.

Ist es möglich, eine eindeutige Einschränkung mit EF 6 hinzuzufügen, da ich glaube, dass dies in früheren Versionen nicht möglich war?.

37

Es scheint, dass die einzigartige Einschränkungsfunktion , deren Veröffentlichung mit Version 6 geplant war, auf 6.1 verschoben wurde.

Mit EF 6.1 können Sie eine Einschränkung mithilfe des Index-Attributs wie folgt definieren:

[Index("IX_FirstAndSecond", 1, IsUnique = true)]
public int FirstColumn { get; set; }

[Index("IX_FirstAndSecond", 2, IsUnique = true)]
public int SecondColumn { get; set; }

OR

Sie können die Fluent-API wie hier in MSDN gezeigt verwenden

51
SBirthare

Angenommen, Sie möchten der Unique-Einschränkung nur ein Attribut hinzufügen. Dies können Sie ab EF6.1 wie folgt tun

[Index(IsUnique = true)]
public string Username { get; set; }

Wenn Sie mehrere Felder haben, die sich auf denselben Index beziehen, werden Sie Folgendes verwenden:

Mehrspaltige Indizes

Indizes, die sich über mehrere Spalten erstrecken, werden unter Verwendung desselben Namens in mehreren Indexanmerkungen für eine bestimmte Tabelle angegeben. Wenn Sie mehrspaltige Indizes erstellen, müssen Sie eine Reihenfolge für die Spalten im Index angeben. Mit dem folgenden Code wird beispielsweise ein mehrspaltiger Index für Rating und BlogId mit dem Namen IX_BlogAndRating erstellt. BlogId ist die erste Spalte im Index und Rating ist die zweite.

public class Post 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public string Content { get; set; } 
    [Index("IX_BlogIdAndRating", 2)] 
    public int Rating { get; set; } 
    [Index("IX_BlogIdAndRating", 1)] 
    public int BlogId { get; set; } 
}

Bitte lesen Sie diesen Link für weitere Informationen.

21
Hassen Ch.