I got the default ASP.NET MVC 4 template successfully running with EF 5.0 Code First Migrations. However, when I update a model property name, the corresponding table column data is dropped by EF 5.0.
Is it somehow possible to rename the table column without dropping data in an automated way?
For EF core you can use like this, migrationBuilder. RenameColumn(name: "oldname",table: "tablename",newName: "newname",schema: "schema"); docs.microsoft.com/en-us/dotnet/api/…
Manually edit the Up and Down methods of the migration to use the RenameColumn
method to replace the AddColumn
and DropColumn
that it automatically generates for you.
As already said, replace the AddColumn
and DropColumn
that is automatically generated with RenameColumn
.
Example:
namespace MyProject.Model.Migrations { using System; using System.Data.Entity.Migrations; public partial class RenameMyColumn : DbMigration { public override void Up() { // Remove the following auto-generated lines AddColumn("dbo.MyTable", "NewColumn", c => c.String(nullable: false, maxLength: 50)); DropColumn("dbo.MyTable", "OldColumn"); // Add this line RenameColumn("dbo.MyTable", "OldColumn", "NewColumn"); } public override void Down() { // Remove the following auto-generated lines AddColumn("dbo.MyTable", "OldColumn", c => c.String(nullable: false, maxLength: 50)); DropColumn("dbo.MyTable", "NewColumn"); // Add this line RenameColumn("dbo.MyTable", "NewColumn", "OldColumn"); } } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With