2014-09-23 3 views
1

Я делаю свой проект в MVC4, где я использую первый подход Code. Мне нужно обновить мою модельМодель обновления MVC с Code-Migrations

У меня есть следующее свойство, которое должно быть обновление, как я могу добиться этого

public class ContactForm 
    { 
     public char Phone { get; set; } 
    } 

    public class ConContext : DbContext 
    { 
     public DbSet<ContactForm> ContactForms { get; set; } 
    } 
} 

я хочу, чтобы обновить телефон Собственость для

public char Phone { get; set; } 

Thnx заранее , я уже установил миграцию на свой проект

My configuration.cs

namespace MyCRM.Migrations 
{ 
    using System; 
    using System.Data.Entity; 
    using System.Data.Entity.Migrations; 
    using System.Linq; 

    internal sealed class Configuration : DbMigrationsConfiguration<MyCRM.Models.ConContext> 
    { 
     public Configuration() 
     { 
      AutomaticMigrationsEnabled = false; 
     } 

     protected override void Seed(MyCRM.Models.ConContext context) 
     { 
      // This method will be called after migrating to the latest version. 

      // You can use the DbSet<T>.AddOrUpdate() helper extension method 
      // to avoid creating duplicate seed data. E.g. 
      // 
      // context.People.AddOrUpdate(
      //  p => p.FullName, 
      //  new Person { FullName = "Andrew Peters" }, 
      //  new Person { FullName = "Brice Lambson" }, 
      //  new Person { FullName = "Rowan Miller" } 
      // ); 
      // 
     } 
    } 
} 
+0

Какая часть не работает? Обновление кода, перенос на консоль или развертывание в вашу базу данных? –

+0

, когда я обновляю это просто в коде, мы должны всегда отбрасывать мою базу данных, что не так. Gud @SamuelCaillerie –

+0

Когда вы запускаете 'Add-Migration', это создает новый файл C# в вашем решении, которое вы можете обновить. Что он генерирует в вашем случае: падение старого столбца и добавление нового? Вы можете посмотреть http://msdn.microsoft.com/en-us/data/jj591621.aspx#customizing для настройки вашей миграции. –

ответ

1

Нормальный поток с EF код-первых, это слишком первым обновить модель (С # файла):

public class ContactForm 
{ 
    public string Phone { get; set; } //previously, this was let's say of type int 
} 

Затем вы строите свой проект и после этого в Package Manager Console, вы должны позвонить Add-Migration с некоторой меткой (для того, чтобы выполнить откат изменений позже, если это необходимо):

Add-Migration Phone 

Это добавит к вашему решению файла с именем, как этот 201409xxxxxxxx_Phone под директорией Migrations.

Тогда вы должны поставить изменения в базу данных, которая может быть сделано с помощью команды (всегда в консоли):

Update-Database 

Затем вы должны сделать: свойство Phone имеет тип строки везде ,

+0

абсолютно здорово! :) –

Смежные вопросы