2012-08-23 14 views
10

Bei der Verwendung von EF 4.3.1-Migrationen muss jedes Mal, wenn eine Migrations- oder Aktualisierungsdatenbank hinzugefügt werden muss, der StartUpProject-Parameter verwendet werden. Kann ich das irgendwo einstellen, damit ich das nicht weiter machen muss? Ich möchte mein Datenprojekt nicht als Startprojekt festlegen. Mein Kontext und Migrationen sind in verschiedenen Projekten, wenn das einen Unterschied macht.StartUp-Projektparameter für Entity-Framework-Migrationen festlegen

Exception ausgelöst, wenn nicht StartpProject Parameter verwendet:

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. 

Antwort

2

Ich bin mir nicht sicher, ob dies ist, was du redest, aber Sie können das Standard-Projekt im Paket-Manager-Konsole für das Projekt festgelegt, wo Ihre Migrations-Konfiguration befindet sich in; Es ist die rechte Dropdown-Liste.
So musste ich das Startprojekt nie als Argument bereitstellen.

+0

ich habe das getan, aber wenn ich nicht angeben t er StartupProject Parameter es wirft eine Ausnahme –

+0

Ernsthaft? Können Sie die gesamte Ausgabe der Ausnahme buchen? –

+0

hinzugefügt in der Ausnahme im ursprünglichen Beitrag oben –

1

Ein sauberer Weg ist es, ein Testprojekt an die Lösung anzuhängen.

Auch wenn Sie nicht viele Komponententests schreiben möchten, ist dies ein geeignetes Startprojekt für einen Daten-Layer-Namespace oder ähnliches.

Dadurch wird Ihr Startproblem sauberer, der Paketmanager gilt für die gesamte IIRC-Lösung - also stellen Sie sicher, dass das Standardprojekt das ist, in dem sich der Migrationsordner befindet.

7

Mindestens mit Entity Framework 6, um das Startprojekt festlegen, die -StartUpProjectName Parameter mit Update-Datenbank:

update-database -StartUpProjectName <String> 

Sie den get-help Befehl innerhalb Package Manager-Konsole verwenden können mögliche Parameter für Befehle anzuzeigen:

get-help update-database -detailed 
0

Verwenden Sie den StartupProject Parameter: Update-database -StartupProject "PROJECTNAME"

Verwandte Themen