9

He creado una aplicación MVC 3.0 utilizando Visual Studio 2012, .NET 4.5 y Entity Framework 5.0.Código Entity Framework Primeras migraciones de datos que no funcionan con VS2012 Web Deploy

Usando Code First Data Migrations, puedo propagar correctamente los cambios del modelo a mi base de datos de prueba local, pero no puedo encontrar la manera de hacerlo funcionar al implementar en mis servidores de producción y producción mediante Web Deploy.

He leído el siguiente artículo ...

http://msdn.microsoft.com/en-us/library/dd394698(v=vs.110)#dbdacfx

... lo que explica lo que se supone que debe ocurrir, pero no funciona para mí, como Web Implementar parece incapaz de detectar que estoy usando Marco de la entidad. El tutorial muestra una casilla de verificación para permitir la ejecución de código primeras migraciones ...

Web Deploy Publish Dialog

... pero mi diálogo muestra la única Update Database casilla de verificación para cada base de datos.

He leído que, para que Visual Studio detecte el uso de un contexto de Entity Framework, el Web.config debe incluir un elemento que lo defina. Aquí está el mío:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 

    <contexts> 
     <context type="MyContext, MyAssembly"> 
      <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[MyContext, MyAssembly], [MyConfig, MyAssembly]], EntityFramework"> 
       <parameters> 
        <parameter value="MyConnectionStringName"/> 
       </parameters> 
      </databaseInitializer> 
     </context> 
    </contexts> 
</entityFramework> 

Cualquier sugerencia sería muy apreciada.

Gracias,

Tim

Respuesta

3

he descubierto la solución a este problema a través de la experimentación.

De hecho, mi aplicación MVC fue creada por VS2012 mediante la conversión desde una solución VS2010. Como el proceso de conversión no reportó ningún problema, asumí que había convertido todo correctamente, incluidos los perfiles de publicación.

Sin embargo, descubrí que el problema radicaba en la conversión de estos perfiles y, a menos que edite manualmente sus archivos XML, aparentemente no hay forma de que participen perfiles antiguos importados en Code First Migrations.

Simplemente crear nuevos perfiles de publicación en la solución convertida da como resultado el comportamiento esperado.

+1

¿Nos puede dar un resumen de las diferencias? –

+1

@Richard: dentro de el perfil recién creado contiene una cantidad de elementos adicionales , cada uno de los cuales representa una clase de contexto. Supongo que hay algún tipo de proceso de descubrimiento que se ejecuta la primera vez que se ejecuta Web Deploy, que no se ejecuta como parte de la conversión de la solución VS2012. –

0

Prueba esto: Enable-migraciones -Force

Asegurar el siguiente se establece en verdadero AutomaticMigrationsEnabled = true;

republicado trabajado para mí

Cuestiones relacionadas