risposta

22

Sembra che lo unique constraint feature che era stato programmato per il rilascio con la Versione 6 sia stato inviato a 6.1.

Con EF 6.1, è possibile definire un vincolo utilizzando l'attributo Index come illustrato di seguito:

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

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

O

È possibile utilizzare API perfetto come mostrato qui in MSDN

+0

Grazie per l'aggiornamento, quindi la creazione di questo indice univoco ha lo stesso effetto della creazione del vincolo unico –

+0

Sì, verrà creato un indice univoco per la colonna nel DB. – SBirthare

+4

Non riesco a trovarlo in EF7 - DNX. – Shimmy

5

Diciamo che vuoi aggiungere il vincolo Unique su un solo attributo, puoi fare come segue, partendo da EF6.1

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

Se si dispone di più campi che sono legati allo stesso indice, allora avete intenzione di utilizzare

indici a più colonne

Indici che si estendono su più colonne sono specificato utilizzando lo stesso nome in più annotazioni Indice per una tabella data . Quando si creano indici multi-colonna, è necessario specificare un ordine per le colonne nell'indice. Ad esempio, il seguente codice crea un indice a più colonne su Rating e BlogId chiamato IX_BlogAndRating. BlogId è la prima colonna nell'indice e il Rating è il secondo.

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

prega di fare riferimento al this link per ulteriori informazioni