2016-06-30 3 views
-1

Я разработал проект с использованием .NET MVC и Entity Framework. Он работал нормально. Я отформатировал ноутбук, переустановил Visual Studio, и я пытаюсь включить миграции и обновить базу данных. Я получаю следующую ошибку:.NET - Включение миграции и обновление базы данных

PM> update-database -ConfigurationType MessageBoard.Data.MessageBoardContext 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
The type 'MessageBoard.Data.MessageBoardContext' does not inherit from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. Migrations configuration types must extend from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. 

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

  1. Entity Framework и доступен для решения/ проекта

  2. Правильная строка подключения в файле Web.config

  3. Я могу позволить миграции и получение ошибка при обновлении база данных

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

Я изучил существующие ссылки и попробовал эти варианты. Я не мог найти решение

Сообщение об ошибке же, если я запускаю его с -verbose флагом и детали приведены ниже

PM> update-database -verbose -ConfigurationType MessageBoard.Data.MessageBoardContext 
Using StartUp project 'MessageBoard'. 
Using NuGet project 'MessageBoard'. 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
System.Data.Entity.Migrations.Infrastructure.MigrationsException: The type 'MessageBoard.Data.MessageBoardContext' does not inherit from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. Migrations configuration types must extend from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. 
    at System.Data.Entity.Utilities.TypeExtensions.CreateInstance[T](Type type, Func`3 typeMessageFactory, Func`2 exceptionFactory) 
    at System.Data.Entity.Migrations.Utilities.MigrationsConfigurationFinder.FindMigrationsConfiguration(Type contextType, String configurationTypeName, Func`2 noType, Func`3 multipleTypes, Func`3 noTypeWithName, Func`3 multipleTypesWithName) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.FindConfiguration() 
    at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.GetMigrator() 
    at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run() 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force) 
    at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
The type 'MessageBoard.Data.MessageBoardContext' does not inherit from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. Migrations configuration types must extend from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. 
+0

Вы запустите его с многословным флагом как следует сообщение об ошибке? Если это так, публикация этого вывода может помочь – LDJ

+0

Я добавил сообщение об ошибке с вербальным флагом –

+0

Можете ли вы проверить, что 'MessageBoard.Data.MessageBoardContext' наследует' System.Data.Entity.Migrations.DbMigrationsConfiguration'? – lokusking

ответ

0

Вы используете неправильный параметр, чтобы указать на контекст. -ConfigurationType ожидает конфигурацию переноса, а не контекст.

Изменения проекта в пакете менеджер падении консоли вниз к одному с миграциями перед запуском update-database

https://coding.abel.nu/2012/03/ef-migrations-command-reference/

+0

Спасибо. Я пробовал команду, и она дает следующую ошибку: PM> update-database -ContextTypeName MessageBoard.Data.MessageBoardContext Update-Database: Невозможно найти параметр, соответствующий имени параметра 'ContextTypeName'. В строке: 1 знак: 33 + обновление базы данных--ContextTypeName <<<< MessageBoard.Data.MessageBoardContext + CategoryInfo: InvalidArgument: (:) [Обновление-базы данных], ParameterBindingException + FullyQualifiedErrorId: NamedParameterNotFound, обновление базы данных- –

+0

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

+0

Большое спасибо. Но он не работает для проекта и работает для других проектов с той же установкой. –

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