17

プロジェクトの 1 つで移行を有効にするときに問題が発生しています。Enable-MigrationsNuget コンソールからコマンドを実行すると、次のようなエラーが表示されます。

Exception calling "SetData" with "2" argument(s): "Type 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject.ModelProjectAutomationObject' in assembly 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At D:\Solution\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:391 char:5
+     $domain.SetData('startUpProject', $startUpProject)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SerializationException

誰かがこの問題に直面したことがありますか?それは私を正しい方向に向けることができます.

環境:
.NET 4.5
Entity Framework 5
Visual Studio 2012 Update 2

4

5 に答える 5

55

問題を発見!
問題は、私のソリューションのスタートアップ プロジェクトがモデリング プロジェクトだったことです。何らかの理由で、プロジェクトで移行を有効にすると、モジュールはスタートアップ プロジェクトに関連するライブラリを調べます。

スタートアップ プロジェクトをソリューションのテスト プロジェクトに変更すると、すべてが機能しました。

アップデート

データベースへの接続に使用するapp.configまたはファイルがスタートアップ プロジェクトに含まれていることを確認します。これは、別のプロジェクトにあるweb.config場合でも、移行を生成するために使用されるファイルです。DbContextを含むプロジェクトをDbContextスタートアップ プロジェクトとして設定できます。

于 2013-06-28T14:11:38.760 に答える
3

コードの最初の移行を使用する場合、移行が他の場所で定義されているプロジェクトを参照する VS でスタートアップ プロジェクトを指定する必要があることがわかります。プロジェクトをロードすることはできません。

(Visual Studio 内で Code First Migrations を使用している場合、これは、ソリューションのスタートアップ プロジェクトが移行を含むプロジェクトを参照していない場合に発生する可能性があります。ソリューションのスタートアップ プロジェクトを変更するか、-StartUpProjectName パラメーターを使用できます。)

于 2013-08-13T20:26:38.177 に答える
0

コンテンツ タイプ名を指定してみてください:

Enable-Migrations -ContextTypeName Web.Infrastructure.ContextName

ソリューションに複数のプロジェクトがある場合は、適用するプロジェクトを指定する必要があります。(コンソール上部のドロップダウン「DefaultProject」)。

于 2013-06-26T10:23:14.063 に答える