entity-framework - tutorial - mvc entity framework español
¿Cómo puedo convencer al asistente de Visual Studio Web Publisher de que mi base de datos es Entity Framework CodeFirst? (1)
En su archivo .pubxml, debe cambiar el nombre del ObjectGroup como el nombre completo de su Dbcontext: m4d.Migrations.Configuration . De lo contrario, parece ser ignorado.
<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>
En VS2015 cuando abro un perfil de publicación existente en el asistente de publicación, inmediatamente decide que mi base de datos predeterminada ya no es EF CodeFirst y quita la opción Ejecutar Primeras Migraciones de Código y lo reemplaza con Actualizar Base de Datos.
De alguna manera, el asistente parece estar decidiendo que esto ya no es un Proyecto CodeFirst y lo está reemplazando con DbDacFx de la siguiente manera:
<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>
Se transforma a:
<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>
(Reemplacé las diversas cadenas de conexión con *)
¿Alguien tiene alguna idea de lo que usa el asistente para decidir si se trata de un proyecto CodeFirst?
Este artículo http://blogs.msdn.com/b/webdev/archive/2014/04/09/ef-code-first-migrations-deployment-to-an-azure-cloud-service.aspx proporciona algunos detalles de cómo para rodar la propia versión de la opción Execute Code First Migrations, y es una posible solución alternativa, pero solía funcionar.