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:

update-database -f

You'll get this:

AddColumn("NewName"...
DropColumn("OldName"...

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.

Answers


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.

~Rowan


Need Your Help

Is there a limit to number of arguments in stringWithFormat?

string cocoa nsstring

I'm trying to compose an email using MFMailComposeViewController and I'm using a HTML string wich draws a table. It has 265 arguments so I have to pass it like this:

Parse Cloud Code function Cannot use the Master Key, it has not been provided

javascript ios objective-c parse.com

I'm having some trouble in executing a function because I keep getting the same error concerning my masterKey not being provided:

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.