2017-11-04 2 views
0

Ich wiederhole diese Frage jetzt, da ich ein klareres Bild des Problems habe. Ich sage ein Problem, da ich keinen logischen Grund für dieses Verhalten sehe.Code erste Bereitstellung mit EF-Targeting-Startprojekt?

Ich habe eine Lösung, die drei Projekte enthält:

Datalayer Projekt

BusinessLogicLayer Projekt

Win Forms (gesetzt als Startprojekt)

data Das Projekt verwendet EF 6 und den Oracle Managed Client. Ich habe festgestellt, dass das DataLayer-Projekt zwar erfolgreich aktiviert wurde (durch Setzen des Standardprojekts in der Dropdown-Liste im Paket-Manager oder mithilfe des Flags -project), aber die Update-Datenbank nicht. Ich muss mit der rechten Maustaste auf mein DataLayer-Projekt klicken und Visual Studio anweisen, es als Startprojekt festzulegen.

Aus dem Test scheint update-database in einem Code ersten Ansatz sucht nach der app.config im Startprojekt, anstatt, was als das Standardprojekt ausgewählt ist.

Ich möchte, dass mein Projekt eine 3-Tier-Architektur hat und alle meine datenbankbezogenen Sachen und EF in meinem DataLayer-Projekt versteckt hält. Ich möchte nicht das DataLayer-Projekt als Startprojekt ändern, nur um die Datenbank zu aktualisieren. Ist das normales Verhalten, oder fehlt mir etwas ganz?

Randnotizen: Mit der Community-Edition von VS, versuchte auf zwei verschiedenen Systemen, neue Projekte und das gleiche Verhalten.

Vielen Dank im Voraus!

Antwort

0

Basierend auf den Tipps für das Flag -Start-Support konnte ich eine Lösung finden.

Um den Update-Datenbank Befehl für ein Projekt zu verwenden, das nicht das Startprojekt ist, dass Sie sowohl die -projectname und -startupproject Fahnen zusammen auf dem gleichen Anruf z.B .:

update-database -project datalayer -startupproject datalayer 
passieren müssen
Verwandte Themen