8

Entity Framework と Elastic Client Database ライブラリを使用して、定期的に一部のモデルを SQL Azure に保存しようとする新しいサービス ファブリック サービスを作成しました。SQL Azure Elastic Sc​​ale Client Library EF サンプル ( Elastic DB Tools EF Sample )にできるだけ近づけてモデル化しようとしています。移行を有効にする必要がある段階ですが、Enable-Migrations を実行すると、次のエラー メッセージが表示されます。ContextTypeName パラメーターを使用しているのは、最終的に異なるモデルの同じデータベースを対象とする異なるサービス ファブリック サービスを用意する場合に必要と思われるためです。助言がありますか?

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.
4

3 に答える 3

7

コマンド-StartUpProjectNameのパラメーターを.NET フレームワーク dll に db コンテキストで指定することで、同じ例外の問題を解決しました。Enable-Migrations問題は、奇妙なスタートアップ プロジェクトにある可能性があります - .IsWebProject() (私の場合は asp.core) の問題です。Enable-Migrations Exception calling "SetData" with "2" argument(s) の詳細な回答を参照してください。

于 2017-02-10T15:55:42.007 に答える
2

Visual Studio 2019 を使用している場合、新しいクラス ライブラリを追加するときに、クラス ライブラリの種類に直面します。

  1. クラス ライブラリ (.NET 標準)

  2. クラス ライブラリ (.NET Framework)

以前は 1 番を選んでいましたが、今では間違いを犯したことがわかりました。

解決策は、番号 2 を選択することです。

于 2019-07-13T17:35:07.423 に答える