Laden...

Wie inkludiere ich eine SQLite Datenbank in Projektexport?

Erstellt von seehashtag vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.119 Views
S
seehashtag Themenstarter:in
35 Beiträge seit 2016
vor 7 Jahren
Wie inkludiere ich eine SQLite Datenbank in Projektexport?

Hallo,

ich lerne seit einer Weile C#/ .NET und bin nun das erste Mal in einem Projekt an eine (lokale) Datenbank angewiesen. Dabei hab ich mich für SQLite entschieden, einfach weil es mir schon vertraut ist und ich es aufgrund dessen, dass es eine einfache Datei ist, am einfachsten finde.

Bin auch offen für andere Vorschläge, aber wenn wir mal beim SQLite bleiben habe ich folgende Frage:

Wie verhält es sich beim Projekt Export? Wie nehme ich die Datenbank mit? Sollte ich eine Art "Startup" Script schreiben, welches auf den Computern der Nutzer in versteckten Ordnern oder in C:\Programme die .sqlite Datei erstellt und befüllt?

P
441 Beiträge seit 2014
vor 7 Jahren

Da gibt es so viele Möglichkeiten, wie du dir ausmalen kannst 😃

Gängig ist denke ich die Datenbank mit dem Installer mit verteilen zu lassen. Oder aber auch das von dir angesprochene "Startup".
Es kommt dabei auf den Anwendungszweck an. Der Installer macht sicherlich weniger Arbeit, aber wenn du die Datei dann im Benutzverzeichnis des aktuellen Benutzers ablegst kommt es zu fehlern, wenn ein anderer Benutzer sich am PC anmeldet und versucht die Applikation zu starten.

Weniger gängig wäre die Datenbankdatei in die Applikation einzubetten und beim Start zu kopieren.

Unter C:\Programme würde ich die Datei allerdings nicht ablegen, hier hat die Applikation idr. keinen Schreibzugriff.

S
seehashtag Themenstarter:in
35 Beiträge seit 2016
vor 7 Jahren

Danke für die nette Antwort 😃

F
10.010 Beiträge seit 2004
vor 7 Jahren

Das Thema wurde hier schon sehr häufig besprochen.

  1. Benutzerdaten haben nichts im Programverzeichnis zu suchen ( siehe Papst's Antwort ).
    Es gibt da extra z.b. Environment.SpecialFolder.CommonApplicationData in zusammenarbeit
    mit Environment.GetFolderPath.

  2. Da sich Datenbanken ständig ändern solltest du von vornherein mit Migrations arbeiten.
    MS hat z.b. beim EF erst viel zu spät damit angefangen.

  3. Da man aus Komfort Gründen sowieso auf einen ORMapper wechselt, sollte man schauen was der bietet.
    Bei SQLite-NET ist sowas schon eingebaut.

  4. Als eigenständigen Migrator benutzen wir seit Jahren FluentMigrator

T
2.224 Beiträge seit 2008
vor 7 Jahren

@seehashtag
Vielleicht solltest du dir mal EF Core anschauen.
Hab vor 2-3 Wochen mal mit dem aktuellen SQLite Provider rumgespielt.
Dort kannst du dann über den Context mit EnsureDatabase, wenn ich mich rech entsinne, dann auch die DB mit der aktuellen Klasse anlegen lassen.
Migrationen erlaubt EF Core auch, sind aber vom Handling für mich als Neueinsteiger auch noch etwas umständlich/ungewohnt.

Je nachdem welche Daten ggf. schon in der DB enthalten sein müssten, solltest du beim Initalisieren dann die DAten eintragen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

2.207 Beiträge seit 2011
vor 7 Jahren

Hallo seehashtag,

zu dem was T-Virus sagte hilft vielleicht:

ASP.NET Core 1.0 with SQLite and Entity Framework 7

Gruss

Coffeebean

T
2.224 Beiträge seit 2008
vor 7 Jahren

@Coffeebean
Und auch der Link hilft ungemein:
https://docs.efproject.net/en/latest/platforms/index.html

Hab damit meine ersten Gehversuche mit Entity Framework Core gemacht und mit den Anleitungen + Testen + weiteres Googeln kam dann schon was einfaches zusammen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.