Je travaille actuellement sur mon premier projet basé sur Entity Framework 6 avec VS2012 en utilisant une base de données SQL Server Compact (modèle en premier). Actuellement, je me demande comment déclarer une colonne Entity à indexer (pas des valeurs uniques) dans la base de données sans être la clé primaire.

Merci pour tout indice.

1
BitEater 17 janv. 2017 à 15:40

2 réponses

Meilleure réponse

Vous ne pouvez pas spécifier un index via le concepteur. Cela ne peut être spécifié que dans la base de données, si vous utilisez Database-First, ou via le modèle, si vous utilisez Code First. Ma préférence est Database First, mais votre kilométrage peut varier.

1
Tsahi Asher 17 janv. 2017 à 12:50

Vous pouvez utiliser l'attribut Index pour créer un index sur une colonne particulière de la base de données comme indiqué ci-dessous:

class Student
{
    public Student()
    {
    }

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

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

Vous pouvez également spécifier qu'il soit mis en cluster avec IsClustered = true et un index unique en spécifiant IsUnique=true.

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

Voir https://msdn.microsoft.com/en-us/data/jj591583 .aspx pour des détails tels que les index uniques et les index multi-colonnes.

1
S.Dav 17 janv. 2017 à 13:00