Comment arrêter EF4.1 code-premier à créer un index Culstered pour l'entité PK
Question
Avec la classe simple entité suivante, Code-First EF4.1 créera index cluster pour la colonne PK UserId
lorsque la base de données initialisation de.
public class User
{
[Key]
public int UserId { get; set; }
public int AppId { get; set; }
public string UserName { get; set; }
}
Pour des raisons de performance, mes objectifs de conception est de maintenir le physique en cluster table Users
généré selon le coulmn de AppId
pas au PK.
Sur ma classe Initializer j'ai essayé de déposer manuellement l'index ordonné en clusters PK autogénérés et créer tout index ordonné en clusters j'ai besoin, mais pas la moindre idée ici de prédire le nom autogénérés PK__Users__25518C17
pour l'index!
Je suis nouveau au Code mondial d'abord, et ne sais vraiment pas s'il y a une solution de contournement pour mes objectifs de conception.
Merci à l'avance
La solution
Vous n'avez pas besoin de prédire le nom d'index généré automatique. Il vous suffit de sélectionner le nom de l'index. Pour le serveur SQL que vous pouvez utiliser comme requête:
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'
Une fois que vous obtenez le nom de votre commande initialiseur vous pouvez modifier ancien index et créer un nouveau.