C# Modularität / Entity Framework

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Guten Morgen,

ich schreibe gerade eine Anwendung die ich modular aufgebaut habe mit dem Prism Framework was einem dabei sehr unterstützt nach MVVM Pattern zu programmieren.

Als Datenbankanbindung nutze ich Entity Framework an einer SQL Compact 4.0 Datenbank. Ich nutze die Code First Methode.

Es gibt in meiner Anwendung mehrere Module, das Startprojekt ist ein quasi leeres Modul und beinhaltet nur eine simple leere View. Ich habe ein weiteres Modul Data was die Models der Datenbank so wie DbContext etc beinhaltet nun kommt es mal vor das ich die Models der Tabellen ändern muss, erweitern muss oder sonst was.

Nach dem ich das getan habe, teile ich über die Package Manager Console in Visual Studio 2017 mit, das ich eine Migration hinzufügen möchte über "Add-Migration Bla", das geschieht auch wunderbar danach sage ich "Update-Database" und ein Update wird auch quittiert.

Mein Problem ist das ich danach zwei Datenbanken habe, einmal im Verzeichnis im dem sich mein Startprojekt befindet wo Sie auch liegen soll und in dem Verzeichnis Data wo mein Data Modul liegt.

Beim Starten der modularen Anwendung wird natürlich die Datenbank im Startprojekt geladen.
In der sich natürlich die Änderungen nicht wieder spiegeln...

Wie kann ich verhindern das die Datenbank noch mal im Modul Data erzeugt wird?

Im Moment arbeite ich mit einer App.config im Startprojekt im connectionString steht drin:
Code:
Data Source=|DataDirectory|\airbase.sdf;
 
Probier mal
Code:
Add-Migration Bla -ProjectName Startprojekt
oder
Code:
Add-Migration Bla -StartUpProjectName Startprojekt
Habe ich einfach mal geraten nachdem ich mir die Hilfe mit
Code:
get-help Add-Migration
angeschaut habe.
 
Ja das habe ich schon getan die Datenbank wird dennoch nur im Modul aktualisiert.

Im Moment behelfe ich mir in dem ich folgendes nutze:
Code:
Update-Database -connectionString "STRING ZUR RICHTIGEN DATENBANK" -connectionProviderName....

Allerdings ist das immer etwas lästig.
 
Zurück
Oben