Я разрабатываю проект, который будет использовать ASP.NET Web API в качестве службы данных, и портативное приложение Xamarin в качестве клиента.VS 2015 API веб-интерфейса ASP.NET (EF6) и Xamarin Enable-Migrations не удалось
Я пытаюсь включить миграции в веб-приложение, но я получаю следующее сообщение об ошибке:
Enable-Migrations -enableautomaticmigrations -ContextTypeName MyProject.Models.ApplicationDbContext -ProjectName MyProject -StartupProjectName MyProject.App -Verbose
Using StartUp project 'MyProject.App'.
Exception calling "SetData" with "2" argument(s): "Type 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' in assembly
'Microsoft.VisualStudio.ProjectSystem.VS.Implementation, Version=14.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At C:\Users\weitz\.nuget\packages\EntityFramework\6.1.3\tools\EntityFramework.psm1:718 char:5
+ $domain.SetData('project', $project)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SerializationException
Exception calling "SetData" with "2" argument(s): "Type 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' in assembly
'Microsoft.VisualStudio.ProjectSystem.VS.Implementation, Version=14.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At C:\Users\weitz\.nuget\packages\EntityFramework\6.1.3\tools\EntityFramework.psm1:719 char:5
+ $domain.SetData('contextProject', $contextProject)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SerializationException
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue[T](Project project, String propertyName)
at System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory)
at System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)
at System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0()
at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Object reference not set to an instance of an object.
**PM>**
Как вы можете видеть, я попытался с указанием начала до проекта явно, но не выглядит как команда enable-migrations так счастлива.
Это проект, который я только что создал, который использует полный .NET (я привязан к модели TPT/TPH, которую EF Core еще не поддерживает), поэтому версия EF 6.1.3 таргетинга .NET 4.6.1.
Я нахожусь на VS Community 2015 Update 3 Version 14.0.25431.01.
Update
Не удается воспроизвести, но проблема возникает даже при добавлении фиктивного запуска до проекта.
Перекрестный помещенный выпуск here, пожалуйста, проголосуйте и делитесь своими экспериментами.
В вашем проекте запуска содержится файл app.config или web.config, который вы используете для подключения к базе данных? Вы также можете использовать проект, содержащий dbcontext, в качестве запуска. – jomsk1e
Он использует appsettings.json для хранения строки подключения. Но я попытался добавить строку подключения в app.config, и это не помогло. – Shimmy