2017-01-17 10 views
1

Ich arbeite gerade an meinem ersten Projekt basierend auf Entity Framework 6 mit VS2012 unter Verwendung einer SQL Server Compact Datenbank (Modell zuerst). Momentan frage ich mich, wie man eine Entity-Spalte, die indiziert werden soll (keine eindeutigen Werte), in der Datenbank deklariert, ohne der Primärschlüssel zu sein.Wie spezifiziert man die Indexspalte in Entity Framework Designer

Vielen Dank für Hinweise.

Antwort

1

Sie können über den Designer keinen Index angeben. Dies kann nur in der Datenbank angegeben werden, wenn Sie zuerst Datenbank ausführen, oder über das Modell, wenn Sie zuerst Code ausführen. Meine Vorliebe ist Database First, aber Ihre Laufleistung kann variieren.

+0

Es ist jedoch möglich, den Index im Code anzugeben. –

+0

@ S.Dav Ja, das ist, was ich mit "durch das Modell, wenn Sie Code zuerst tun" gemeint habe. –

1

Sie können das Index Attribut Index in der Datenbank auf einer bestimmten Spalte erstellen, wie unten dargestellt:

class Student 
{ 
    public Student() 
    { 
    } 

    public int Student_ID { get; set; } 
    public string StudentName { get; set; } 

    [Index] 
    public int RegistrationNumber { get; set; } 
} 

Sie können es mit IsClustered = true und einem eindeutigen Index durch Angabe IsUnique=true geclustert werden auch angeben .

[Index("INDEX_REGNUM", IsClustered=true, IsUnique=true)] 
public int RegistrationNumber { get; set; } 

Siehe https://msdn.microsoft.com/en-us/data/jj591583.aspx für Details wie eindeutige Indizes und mehrspaltigen Indizes.

Verwandte Themen