Odpowiedz

22

Wygląda na to, że wersja unique constraint feature, która miała zostać wydana w wersji 6, została przesunięta do wersji 6.1.

EF 6.1, można zdefiniować ograniczenia przy użyciu atrybutu Index, jak pokazano poniżej:

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

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

LUB

Można użyć Fluent API, jak pokazano tutaj w MSDN

+0

Dzięki za aktualizację, więc tworzenie tego unikalnego indeksu ma taki sam efekt jak tworzenie unikalnego ograniczenia. –

+0

Tak, utworzy unikalny indeks dla kolumny w DB. – SBirthare

+4

Nie można znaleźć tego w EF7 - DNX. – Shimmy

5

Załóżmy, że chcesz dodać ograniczenie Unique tylko do jednego atrybutu, możesz wykonać następujące czynności, zaczynając od EF6.1

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

Jeśli masz kilka pól, które są związane z tym samym indeksem następnie masz zamiar użyć

Multiple-kolumnowy indeksów

indeksach obejmujących wiele kolumn określona przy użyciu tej samej nazwy w wielu adnotacjach indeksu dla podanej tabeli. Podczas tworzenia indeksów z wieloma kolumnami należy podać kolejność kolumn w indeksie. Na przykład następujący kod tworzy indeks wielu kolumn na ocenę i BlogId o nazwie IX_BlogAndRating. BlogId to pierwsza kolumna w indeksie, a ocena jest druga.

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; } 
} 

Proszę odnieść się do this link dalszych informacji