6

Я только что создал новую службу сервисов, которая периодически пытается сохранить некоторые модели в SQL Azure с использованием Entity Framework и библиотеки библиотеки Elastic Client. Я пытаюсь смоделировать его так близко, как я могу, к образцу EF для клиентской библиотеки SQL Azure Elastic Scale (Elastic DB Tools EF Sample). Я нахожусь в точке, где мне нужно включить миграции, но когда я запускаю Enable-Migrations, я получаю следующее сообщение об ошибке. Я использую параметр ContextTypeName, поскольку он звучал так, как будто это было бы необходимо, если в конечном итоге у меня будут разные сервисные сервисы, ориентированные на одну и ту же базу данных с разными моделями. Какие-либо предложения?Enable-Migrations «Ссылка на объект не установлена ​​в экземпляр объекта»

PM> Enable-Migrations -ContextTypeName "ServiceHealth.DbService" 
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.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is 
not marked as serializable." 
At C:\eNowCloud\eNow.MicroServices\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 char:5 
+  $domain.SetData('startUpProject', $startUpProject) 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : SerializationException 

System.NullReferenceException: Object reference not set to an instance of an object. 
    at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion) 
    at System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project project) 
    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. 
+0

Можете ли вы поделиться минимальным воспроизведением этой проблемы? –

+0

У меня есть аналогичная проблема, вы нашли решение? –

+0

Оказывается, я забыл установить строку соединения в моем web.config. –

ответ

2

я решил тот же вопрос исключения, указав -StartUpProjectName параметр Enable-Migrations команды в моем .NET Framework DLL с контекстом дб. Проблема может быть связана с странным проектом запуска - проблемой в .IsWebProject() (asp.core в моем случае). Подробнее см. Ответ на вопрос Enable-Migrations Exception calling "SetData" with "2" argument(s).