Question

J'utilise EF 4.1 CodeFirst pour créer mon DB. Il semble que EF crée toutes les clés primaires avec index ordonné en clusters, ce qui est optimal pour nous dans un cas (peut-être plus de cas). Est-il possible de dire EF pour générer cette table avec clé primaire comme un index non ordonnés en clusters?

Bien sûr, nous pourrions le faire manuellement à l'aide script personnalisé après la base de données est déjà créé, mais nous avons beaucoup de clés étrangères pointant vers ce tableau, il serait tout à fait une solution non optimale s'il y a une meilleure, plus direct façon de faire la même chose déjà lors de la création DB. Toute aide appréciée

Était-ce utile?

La solution

Non, il n'y a aucun moyen de contrôle du code SQL génère d'abord - il est premier code et sa philosophie actuelle (mauvaise en fait) est:. Vous ne savez rien sur la base de données et vous ne vous préoccupez pas

La seule façon de changer ce comportement est la base de données d'écriture personnalisée initialiseur, utiliser des requêtes de base de données personnalisée pour rechercher l'index créé, supprimer cet index et créer un nouveau. Quelques références:

Le initilizer fera votre solution en fonction du produit du serveur de base de données de béton.

Autres conseils

Oui, il y a une façon que vous pouvez spécifier de ne pas créer des index en cluster. Si vous utilisez la migration de code, le fichier d'un * est généré afin de remplir votre DataBase. Dans ce fichier, vous pouvez spécifier en dehors de la clé primaire pour chaque table, si elle doit être créé avec des index clusterisés.

  .PrimaryKey(t => t.MID, null, true)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top