2012-02-14 11 views
5

Quiero usar ELMAH con servidor sql en mi proyecto ASP.net MVC 3, junto con EF 4.3.Scripts de la base de datos de Autorun ELMAH

¿Hay alguna forma en que pueda ejecutar automáticamente el script sql que crea las tablas elmah?

Supongo que las migraciones ef pueden hacer el trabajo, pero todavía no las he usado.

Estoy buscando una solución en la que pueda verificar la solución y ejecutarla directamente (en sqlexpress localmente o servidor sql completo en implementación) y hacer que funcione sin tener que ejecutar manualmente los diversos scripts de ayuda sql

Respuesta

5

Agregue una migración basada en código vacía (simplemente escriba add-migration ElmahSetup cuando no haya cambios pendientes en la base de datos).

Luego agregue llamadas a Sql() para ejecutar el elmah en el método Up(). Para completar la solución, debe agregar los resúmenes correspondientes al método Down().

+0

¿Puedes proporcionar los scripts también para abajo? – Adaptabi

+0

No sé cómo son los scripts, pero crear un método 'Down()' es básicamente un conjunto de sentencias 'Drop' para todo lo que se crea en el método' Up() '. –

+2

Gran solución @AndersAbel Aquí está mi script para hacer esto con la migración EF: [link] (https://gist.github.com/danmusk/7265235) – DanMusk

3

Sé que esta pregunta era para EF 4.3, pero si está utilizando EF 6.1 entonces no es ahora un paquete Nuget que inicializar la tabla y procsos Elmah para usted: https://www.nuget.org/packages/Elmah.SqlServer.EFInitializer/. Agrégalo a tu proyecto web. Luego usará el código EF primero para crearlo para usted. Agrega un inicializador a su carpeta App_Start para que no tenga que agregar ningún código. Agregará una migración a su base de datos para asegurarse de que solo se agregue una vez.

+0

Este es un enfoque muy agradable. Ahorro mucho dolor de cabeza :) –

Cuestiones relacionadas