J'ai conçu un modèle de données d'entités avec deux entités entre lesquelles il existe une relation many-to-many. Lorsque je génère automatiquement le code SQL pour générer la base de données pour ce modèle, il a généré une table (deux colonnes) pour suivre cette association plusieurs-à-plusieurs. Cependant, cette table a une CLÉ PRIMAIRE NON DÉCLINÉE sur les deux colonnes. Puisque je veux que cela fonctionne sur SQL Azure qui n'aime pas les tables avec seulement des index non-cluster, je me demandais s'il y avait un bon moyen de dire à la génération de code de générer des index clusterisés? Merci!Entity Framework Index cluster-many-many vs. index non-cluster
8
A
Répondre
3
J'ai un autre fichier appelé Model.indexes.sql qui contient des scripts pour créer des index supplémentaires au-delà de ceux générés par EF, comme ceux pour l'optimisation des performances.
Bien que ce n'est pas idéal, j'ajouté dans cette une baisse de l'indice et de créer pour chaque association EF pour convertir les index non cluster dans les Indexé:.
ALTER TABLE [dbo] [MyAssociation] DROP CONSTRAINT [PK_MyAssociation] GO ALTER TABLE [dbo]. [MyAssociation] ADD CONSTRAINT [PK_MonAssociation] PRIMARY KEY CLUSTERED ([Table1_Id], [Table2_Id] ASC); GO
Ceci est exécuté après chaque "Générer une base de données à partir du modèle ...". J'adorerais une solution plus élégante.
Avez-vous essayé de lui donner une clé de substitution? – Nix
Je suis dans le même bateau. Je me rends compte que c'est une vieille question, mais ne semble pas avoir reçu de réponse. Azure ne prend toujours pas en charge les clés non cluster que EF génère. – Allan