Come fermare EF4.1 Codice-First per creare cluster indice per la PK entità
Domanda
Con la seguente classe di entità semplice, EF4.1 Codice-Prima creerà indice cluster per la colonna PK UserId
quando INIZIALIZZA il database.
public class User
{
[Key]
public int UserId { get; set; }
public int AppId { get; set; }
public string UserName { get; set; }
}
Per l'amor prestazioni, i miei obiettivi di progettazione è quello di mantenere la tabella Users
generato cluster fisico secondo il coulmn AppId
non al PK.
Sulla mia classe Initializer ho cercato di cadere manualmente il PK generata automaticamente cluster indice e creare qualsiasi cluster indice ho bisogno, ma nessun indizio qui per predire il nome PK__Users__25518C17
generato automaticamente per l'indice!
Sono nuovo di Codice-primo mondo, e davvero non so se c'è qualche soluzione per i miei obiettivi di progettazione.
Grazie in anticipo
Soluzione
Non è necessario prevedere nome automaticamente indice generato. Hai solo bisogno di selezionare il nome dell'indice. Per il server SQL è possibile utilizzare domanda come:
SELECT I.Name
FROM sys.indexes AS I
INNER JOIN sys.tables AS T ON
I.object_Id = T.object_Id
WHERE I.is_primary_key = 1
AND T.Name = 'Users'
Una volta che il nome nella vostra abitudine di inizializzazione è possibile modificare indice di vecchi e crearne uno nuovo.