2012-08-23 17 views
10

Al usar las migraciones de EF 4.3.1 cada vez que necesito agregar una base de datos de migración o actualización, tengo que usar el parámetro StartUpProject. ¿Puedo configurar esto en algún lugar para que no tenga que seguir haciendo esto? No quiero configurar mi proyecto de datos como el proyecto de inicio. Mi contexto y migraciones están en proyectos diferentes si eso hace la diferencia.Establecer el parámetro del proyecto de inicio para las migraciones de Entity Framework

excepción iniciada cuando no se utiliza el parámetro StartpProject:

update-database -verbose 
Using NuGet project 'Data.Deployment'. 
Using StartUp project ''. 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) 
    --- End of inner exception stack trace --- 
    at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) 
    at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) 
    at System.Management.Automation.ComMethod.InvokeMethod(PSMethod method, Object[] arguments) 
Exception has been thrown by the target of an invocation. 

Respuesta

2

No estoy seguro de si esto es lo que está hablando, pero se puede establecer el proyecto predeterminado en la consola de Administrador de paquetes para el proyecto en el su configuración de Migrations reside en; es la lista desplegable más a la derecha.
De esta manera, nunca tuve que proporcionar el proyecto de inicio como argumento.

+0

he hecho eso, pero si no especifico t El parámetro StartupProject arroja una excepción –

+0

¿En serio? ¿Puedes publicar todo el resultado de la excepción? –

+0

agregado en la excepción en la publicación original anterior –

1

Una manera limpia de solucionar esto es adjuntar un Proyecto de prueba a la solución.

Incluso si no desea escribir muchas pruebas unitarias, es un proyecto de inicio apropiado para un espacio de nombres de capa de datos o similar.

Eso hace que su problema de arranque sea más limpio, el administrador de paquetes se aplica a toda la solución IIRC, así que asegúrese de que el proyecto predeterminado sea el que tiene la carpeta de migraciones.

7

Al menos con Entity Framework 6, para especificar el proyecto de inicio utilice el parámetro -StartUpProjectName con la actualización de base de datos:

update-database -StartUpProjectName <String> 

Usted puede utilizar el comando get-help dentro de la consola de Administrador de paquetes para ver posibles parámetros para los comandos:

get-help update-database -detailed 
0

utilizar el parámetro StartupProject: Update-database -StartupProject "PROJECTNAME"

Cuestiones relacionadas