Код Entity Framework сначала - не могу добавить новый класс - PullRequest
0 голосов
/ 02 февраля 2012

Сначала я использую код и настроил свою среду, и все было хорошо.Проблема в том, что я возвращаюсь позже и мне нужно добавить новый класс (Foo), например

public class NorthwindContext : DbContext 
{
    public DbSet<Customer> Customers { get; set; }
    ...
    public DbSet<Foo> Foos { get; set; } // added
}

public class Foo // added
{
    public string FooID { get; set; }
    public int Payload { get; set; }
}

public class Customer
{
...

Однако теперь, когда я пытаюсь обновить ссылку на сервис, я получаю сообщение об ошибке.Если я достану

public DbSet<Foo> Foos { get; set; }

Все хорошо, за исключением того, что в сгенерированном коде нет Foos.Что мне не хватает?

1 Ответ

0 голосов
/ 03 февраля 2012

У вас есть несколько вариантов решения проблемы. Удалите IncludeMetadataConvention, включенный в ваш контекст. Затем вручную удалите базу данных.

public class NorthwindContext : DbContext
{
    public DbSet<Customer> Customers { get; set; }

    public DbSet<Foo> Foos { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

        base.OnModelCreating(modelBuilder);
    }
}

или установите инициализатор в точке входа ваших программ.

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<NorthwindContext>());

Окончательным вариантом будет использование Code First Migrations , которая все еще находится в бета-версии.

...