EF 4.1 SeedData не заполняет таблицу - PullRequest
0 голосов
/ 30 января 2012

Я создал класс SeedData и заполнил его значениями, которые я хотел бы добавить в таблицу. Когда я запускаю приложение, я не получаю никаких ошибок, но таблица не заполняется данными посева.

Я использую ASP.NET MVC3 и EF 4.1

Я попробовал оба DropCreateDatabaseAlways и DropCreateIfModelChanges безуспешно

В Global ASAX у меня есть следующая ссылка в Application_Start

System.Data.Entity.Database.SetInitializer(new EDWv2.Models.SeedData());

Мой класс SeedData определен следующим образом:

public class SeedData : DropCreateDatabaseAlways<EDWContext>
{
    protected override void Seed(EDWContext context)
    {

        var controlsystemdesignation = new List<ControlSystemDesignation>
        {
            new ControlSystemDesignation { Name = "BA"},
            new ControlSystemDesignation { Name = "BP"},
            new ControlSystemDesignation { Name = "RA"},
            new ControlSystemDesignation { Name = "GA"},
            new ControlSystemDesignation { Name = "WA"},
            new ControlSystemDesignation { Name = "WB"},
            new ControlSystemDesignation { Name = "WC"},
            new ControlSystemDesignation { Name = "EA"},
            new ControlSystemDesignation { Name = "EB"},
            new ControlSystemDesignation { Name = "EC"},
            new ControlSystemDesignation { Name = "DA"},
            new ControlSystemDesignation { Name = "DB"},
            new ControlSystemDesignation { Name = "DC"},
            new ControlSystemDesignation { Name = "FA"},
            new ControlSystemDesignation { Name = "FB"},
            new ControlSystemDesignation { Name = "SA"},
            new ControlSystemDesignation { Name = "SB"},
            new ControlSystemDesignation { Name = "SC"},
            new ControlSystemDesignation { Name = "LA"},
            new ControlSystemDesignation { Name = "LD"},
            new ControlSystemDesignation { Name = "DP"},
            new ControlSystemDesignation { Name = "PA"},
            new ControlSystemDesignation { Name = "PB"},
            new ControlSystemDesignation { Name = "PC"},
            new ControlSystemDesignation { Name = "UL"},
            new ControlSystemDesignation { Name = "UA"}
    };
        base.Seed(context);
        context.SaveChanges();
    }
}

Спасибо

Jason

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Вам необходимо добавить ControlSystemDesignation сущностей к context.

public class SeedData : DropCreateDatabaseAlways<EDWContext>
{
    protected override void Seed(EDWContext context)
    {

        var controlsystemdesignation = new List<ControlSystemDesignation>
        {
            new ControlSystemDesignation { Name = "BA"},
            new ControlSystemDesignation { Name = "BP"},
            new ControlSystemDesignation { Name = "RA"},
            new ControlSystemDesignation { Name = "GA"}
            //...
        };

        controlsystemdesignation.ForEach(item => context.ControlSystemDesignations.Add(item));

        context.SaveChanges();
    }
}
0 голосов
/ 31 января 2012

Вам нужно будет добавить эти экземпляры в DbSet<ControlSystemDesignation>, который должен быть частью вашего контекста.

context.ControlSystemDesignations.Add(instance);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...