Entity Framework Change Primary Key Type

Ok to actually answer your question. Yes you can just change the data type and Migrations should take care of it.

However based off your comments you're having trouble applying this migration. This doesn't negate the above but I'll attempt to help using a bit of guesswork.

If you're using Sql Azure, you must have clustered indexes on all tables. EF6 should create clustered indexes even on string keys. There is a bug with alpha 3 though where it doesn't create a clustered key on the migrations table.

http://entityframework.codeplex.com/discussions/435723

See the above link for a description and a workaround.

If you're still having trouble, you can run the following command from the package console:

Update-Database -Script

This will produce a SQL Script instead of trying to update directly. You can look at this and see if any of the Create Table statements do not have a clustered index on them.

If, for some reason there aren't. You can explicitly modify your migration's CreateTable statement to make the primary key clustered.

CreateTable("MyTable", 
    c => new { 
        Id = c.String(nullable: false, maxLength: 128)
    })
.PrimaryKey(t => t.Id, null, true);

Also worth noting: Guids make terrible clustered indexes. If you're using GUID keys and have the option, don't cluster on them and have a second clustered index instead.