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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top