Domanda

sto usando EF 4.1 CodeFirst per creare il mio DB. Sembra che EF sta creando tutte le chiavi primarie con indice cluster, che non è ottimale per noi in un caso (possibilmente più casi). C'è un modo per dire EF per generare questa tabella con chiave primaria come un indice non cluster?

Naturalmente potremmo farlo manualmente tramite script personalizzato dopo database è già stato creato, ma abbiamo un sacco di chiavi esterne che puntano a questo tavolo, sarebbe un bel soluzione non ottimale se v'è una migliore, più semplice modo di fare lo stesso già durante la creazione di DB. Qualsiasi aiuto apprezzato

È stato utile?

Soluzione

Non v'è alcun modo per il controllo del codice SQL prima genera - è il codice prima e la sua filosofia corrente (quello cattivo in realtà) è:. Non si sa nulla del database e non si preoccupano

L'unico modo per modificare questo comportamento è quello di inizializzazione del database di scrittura personalizzato, utilizzare le query di database personalizzato per la ricerca di indice creato, rimuovere tale indice e crearne uno nuovo. Alcuni riferimenti:

L'initilizer renderà la vostra soluzione dipende dal prodotto server di database di cemento.

Altri suggerimenti

Sì, c'è un modo è possibile specificare di non creare indici cluster. Se si utilizzano le migrazioni di codice, un file * cs viene generato al fine di popolare il database. In questo file è possibile specificare a parte la chiave primaria per ogni tabella, se deve essere creato con gli indici cluster.

  .PrimaryKey(t => t.MID, null, true)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top