EF Migrations: RenameColumn in Automatic Migrations?
If you rename a property, the Visual Studio IDE is smart enough to help you refactor to rename that property throughout your code. If that rename is on a model used in EF Migrations, and you run a standard automatic migration like:
You'll get this:
Not what you wanted. Obviously running Add-Migration at this point will let you go in and manually change these 2 calls to a single call to RenameColumn, but is there some way to get Automatic Migrations to do this automatically? Some approach to property rename that I'm not doing right, perhaps?
I'm using EF 5.0 in VS2012, but this behavior appears in EF 4.3.1 and VS2010 as well.
Migrations can’t automatically detect the rename of a property and column. The scaffolded migration will contain a Drop/Create that you’ll need to change into a Rename.
If you just rename the column (by adding a [Column] annotation to the property) we can detect that as a rename because we can match on the name of the property the column is mapped to.
We did consider adding a –Renames switch to the Add-Migration command, but in the end we decided editing the generated code was easier than working out the syntax for supplying renames at the command line.