9

VS2015では、パブリッシュウィザードで既存のパブリッシュプロファイルを開くと、すぐに自分のデフォルトデータベースがEF CodeFirstではなく、Execute Code First Migrationsというオプションが削除され、Update Databaseに置き換えられます。Visual Studio Publish Webウィザードで、自分のデータベースがEntity Framework CodeFirstであることを確認するにはどうすればよいですか?

どういうわけか、ウィザードはこれはもはやCodeFirstプロジェクトであると判断しないことのようですので、同じようDbDacFxで置き換えている:私は置き換え

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="DefaultConnection" Order="1" Enabled="False"> 
     <Destination Path="Data Source=*" /> 
     <Object Type="DbDacFx"> 
     <PreSource Path="Data Source=*" includeData="False" /> 
     <Source Path="$(IntermediateOutputPath)AutoScripts\DefaultConnection_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" /> 
     </Object> 
     <UpdateFrom Type="Web.Config"> 
     <Source MatchValue="Data Source=*" MatchAttributes="$(UpdateFromConnectionStringAttributes)" /> 
     </UpdateFrom> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 

(:

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="DefaultConnection" Order="1" Enabled="True"> 
     <Destination Path="Data Source=*" /> 
     <Object Type="DbCodeFirst"> 
     <Source Path="DBMigration" DbContext="m4d.Context.DanceMusicContext, m4d" MigrationConfiguration="m4d.Migrations.Configuration, m4d" Origin="Configuration" /> 
     </Object> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 

がに変換します*)

誰もが、これがCodeFirstプロジェクトであることを決定するためにどのような考えを持っていますか?

この記事http://blogs.msdn.com/b/webdev/archive/2014/04/09/ef-code-first-migrations-deployment-to-an-azure-cloud-service.aspxは、独自のバージョンのコード実行マイグレーションオプションをロールバックする方法についていくつかの詳細を示していますが、潜在的な回避策です。

+0

私はあなたの質問に正確に答えることはできませんが、私はVisual Studioを再起動しても問題が再現されないことに気付きました。 – Paul

+0

VS2015を数回再起動しましたが、ここで述べた問題はまだ解決しています。 – JustMaier

+0

私はVisual Studio 2017でも同じ問題があります。 – Zero3

答えて

0

.pubxmlファイルでは、DbcontextのフルネームとしてObjectGroupの名前を変更する必要があります。m4d.Migrations.Configuration。さもなければ、それは無視されるようです。

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="m4d.Migrations.Configuration" Order="1" Enabled="True"> 
     <Destination Path="Data Source=*" /> 
     <Object Type="DbCodeFirst"> 
     <Source Path="DBMigration" DbContext="m4d.Context.DanceMusicContext, m4d" MigrationConfiguration="m4d.Migrations.Configuration, m4d" Origin="Configuration" /> 
     </Object> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 
関連する問題