Ok per rispondere effettivamente alla tua domanda. Sì è sufficiente modificare il tipo di dati e le Migrazioni dovrebbero occuparsene.
Tuttavia in base ai tuoi commenti non riesci ad applicare questa migrazione. Questo non nega quanto sopra, ma cercherò di aiutare a usare un po 'di congetture.
Se si sta utilizzando Sql Azure, è necessario disporre di indici cluster su tutte le tabelle. EF6 dovrebbe creare indici cluster anche su chiavi stringa. C'è un bug con alpha 3 anche se non crea una chiave cluster nella tabella delle migrazioni.
http://entityframework.codeplex.com/discussions/435723
Vedi il link qui sopra per una descrizione e una soluzione.
Se hai ancora problemi, è possibile eseguire il seguente comando dalla console del pacchetto:
Update-Database -Script
questo produrrà uno script SQL invece di cercare di aggiornare direttamente. Puoi guardare questo e vedere se una qualsiasi delle istruzioni Create Table non ha un indice cluster su di esse.
Se, per qualche motivo, non ci sono. È possibile modificare in modo esplicito l'istruzione CreateTable della migrazione per rendere la chiave primaria in cluster.
CreateTable("MyTable",
c => new {
Id = c.String(nullable: false, maxLength: 128)
})
.PrimaryKey(t => t.Id, null, true);
vale la pena anche notare: GUID fanno terribili indici cluster. Se stai utilizzando le chiavi GUID e hai l'opzione, non raggrupparle su di esse e avere invece un secondo indice cluster.
Sembra che tu abbia un'idea di qualcosa che potresti fare. L'hai provato? La risposta dovrebbe essere "sì". – JamesT
@JTolley No, perché ero sicuro al 99% che la risposta fosse "no". Ho avuto alcune esperienze negative prima con le versioni precedenti di EF con questo. Comunque dopo aver letto il tuo commento ho provato a cambiarlo da int a long e string, ed entrambe le volte ho ottenuto questo err: 'Tabelle senza indice cluster non sono supportate in questa versione di SQL Server. Si prega di creare un indice cluster e riprovare. Impossibile eliminare il vincolo. Vedi errori precedenti. La dichiarazione è stata chiusa. – hyperN
Quale versione di SQL Server stai usando? – JamesT