Исключения для первой миграции кода Entity Framework

Я получаю несколько необработанных исключений при использовании Code First Migrations of Entity Framework 4.3.

Контекст базы данных:

public class MyAppContext : DbContext
{
   public DbSet<Branch> Branches { get; set; }

   public MyAppContext()
   { }
}

Сущность:

public class Branch : IEntity<Guid>
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public bool Active { get; set; }
 }

Инициализатор базы данных:

public class MyAppInitializer : CreateDatabaseIfNotExists<MyAppContext>
{
   protected override void Seed(MyAppContext context)
   {
      context.Branches.Add(new Branch() { Id = branchId, Name = "Acme", Description = "Acme", Active = true });
      context.SaveChanges();
   }
}

Я установил Entity Framework 4.3 в свой проект DAL и проект MVC, используя:

Install-Package EntityFramework

Я установил MVC project в качестве стартового проекта и выполнил следующую команду для проекта DAL с контекстом базы данных и инициализатором:

PM> Enable-Migrations -Verbose

Используя проект NuGet «Ckms.KeyManagement.Managers». Ошибка при поиске типа контекста (укажите -Подробно, чтобы просмотреть сведения об исключении). System.Data.Entity.Migrations.Design.ToolingException:Не удалось загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации. в System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner бегун)в System.Data.Entity.Migrations.Design.ToolingFacade.GetContextTypes()
в System.Data.Entity.Migrations.MigrationsCommands.FindContextToEnable()Отредактируйте сгенерированный класс конфигурации, чтобы указать контекст для включить миграцию для. Code First Migrations включен для проекта Ckms.KeyManagement.Managers.

В проект DAL добавлен дочерний класс DbMigrationsConfiguration. Если я добавлю тип DbContext вручную и включу автоматические миграции :

internal sealed class Configuration : DbMigrationsConfiguration<MyAppContext>
{
   public Configuration()
   {
      AutomaticMigrationsEnabled = true;
   }

   protected override void Seed(MyAppContext context)
   { }
}

, эти исключения будут выброшены для команд Add-Migration and Update-Database:

PM> Add-Migration TestEFMigrationsColumn -Verbose

Использование проекта NuGet 'Ckms.KeyManagement.Managers'.Используя проект StartUp ''. System.Reflection.TargetInvocationException:Возникло исключение по цели вызова. ---> System.ArgumentException:параметр неверный. (Исключение из HRESULT:0x80070057 (E_INVALIDARG))---Конец трассировки внутреннего стека исключений ---в System.RuntimeType.InvokeDispMethod(Имя строки, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Культура Int32, String[] namedParameters)в System.RuntimeType.InvokeMember(Имя строки, BindingFlags bindingFlags, связующее связующее, цель объекта, Object[] createdArgs, Модификаторы ParameterModifier[], культура CultureInfo, String[] namedParams)в Метод System.Management.Automation.ComMethod.InvokeMethod(PSMethod, Object[] arguments)Исключение было вызвано целью призыв.

Обновление-База данных:

PM> Обновление-База данных -Подробный

Использование проекта NuGet 'Ckms.KeyManagement.Managers'. Используя проект StartUp ''. System.Reflection.TargetInvocationException:Возникло исключение по цели вызова. ---> System.ArgumentException:параметр неверный. (Исключение из HRESULT:0x80070057 (E_INVALIDARG))---Конец трассировки внутреннего стека исключений ---в System.RuntimeType.InvokeDispMethod(Имя строки, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Культура Int32, String[] namedParameters)в System.RuntimeType.InvokeMember(Имя строки, BindingFlags bindingFlags, связующее связующее, цель объекта, Object[] createdArgs, Модификаторы ParameterModifier[], культура CultureInfo, String[] namedParams)в Метод System.Management.Automation.ComMethod.InvokeMethod(PSMethod, Object[] arguments)Исключение было вызвано целью призыв.

Есть идеи? Сообщения об ошибках не очень полезны.Я пробовал команды Nuget с существующей базой данных и без нее.

6
задан Ladislav Mrnka 6 March 2012 в 11:36
поделиться