Laden...

Model First Approach mit embedded DB

Erstellt von 7.e.Q vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.316 Views
7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 13 Jahren
Model First Approach mit embedded DB

verwendetes Datenbanksystem: Tja, diverse...

Ich glaub's nicht. Ich kann einfach nicht glauben, dass es so dermaßen kompliziert sein soll, eine einfache Client-Anwendung zu schreiben, die auf eine kleine lokale, dateibasierte Datenbank zugreift.

Folgendes habe ich soeben bisher erfolglos versucht: unter Zuhilfenahme es Entity Framework mit einem Model First Approach eine Datenbankanwendung für eine Büchersammlung zu erstellen. Die Anwendung soll möglichst klein sein, weshalb ich mich im ersten Anlauf für SQLite erwärmen wollte.

Zwei ADO.NET Provider hab ich dazu in Augenschein nehmen wollen:

System.Data.SQLite von phxsoftware
Todesurteil: unterstützt kein Model First Approach (DatabaseExists und CreateDatabase nicht unterstützt)

devart dotConnect for SQLite 3.10 Free
Todesurteil: unterstützt kein Model... siehe erster Provider

Dann habe ich gedacht, eventuell funktioniert das ja mit dem MSSQL Compact Edition. Todesurteil: Tja... siehe SQLite.

Dann war ich zeitweise am Überlegen, ob ich es mit MSSQL Express realisiere, aber der ist mir schon wieder zu oversized für die Größe der Anwendung. Was soll ich mit einem Standalone Server auf der Maschine, auf der die Anwendung laufen soll, wenn es doch eigentlich gute dateibasierte Datenbanken gibt? Mehr will ich doch gar nicht.

Dann hab ich mir gedacht, zäumst du das Pferd doch von hinten auf. Also erst die Datenbank erstellen, dann darauf basierend das Model generieren. Aber glaubt ihr, ich finde einen vernünftigen Manager, mit dem ich eine MSSQL Compact Edition Datenbank erstellen kann? Das SQL Server Management Studio soll das können, doch weigert es sich auf meinem Windows 7 64bit System mit Händen und Füßen, sich installieren zu lassen. Es will unbedingt einen schon vorhandenen SQL Express Server 2008 installieren.

Jetzt bin ich inzwischen soweit, dass ich für den Database First Approach sogar MSSQL Express akzeptieren würde. Doch da stellt sich mir das selbe Problem in den Weg, wie bei MSSQL Compact Edition: kein brauchbares Management Tool.

ADO.NET Provider für XML-Dateien? Unsinn, XML ist ja nicht relational. Wozu also das Entity Framework für XML benutzen wollen?

ADO.NET für Access Datenbank? Nicht vorhanden, wahrscheinlich wegen 64bit (das .NET Projekt ist auf x86 eingestellt).

Ich frage mich, ist das immer so kompliziert, wenn's ums EF geht? Boar! So viele Knüppel hatte ich ja schon lange nicht mehr unter den Füßen...

Danke für's Zuhören!

Grüße,
Hendrik

H
208 Beiträge seit 2008
vor 13 Jahren

Mit Entity Framework, SQLite und MSSQL Compact kenne ich mich leider nicht genug aus um hier irgendeine qualifizierte Antwort beisteuern zu können, aber zu MSSQL Express kann ich was sagen, insbesondere hierzu:

Jetzt bin ich inzwischen soweit, dass ich für den Database First Approach sogar MSSQL Express akzeptieren würde. Doch da stellt sich mir das selbe Problem in den Weg, wie bei MSSQL Compact Edition: kein brauchbares Management Tool.

MSSQL Express hat sogar ein sehr brauchbares Management-Tool, nämlich das gleiche SQL Server Management Studio das auch bei den "großen" Editionen vom SQL Server dabei ist.

Allerdings gibt es drei verschiedene Versionen vom SQL Server Express mit unterschiedlichem Funktionsumfang, und das Management Studio ist nicht bei allen dabei. Ich vermute mal, Du hast die Version ohne Management Studio erwischt.

Hier ist die Downloadseite bei Microsoft, inkl. Auswahl zwischen den 3 verschiedenen Versionen. Bei der linken fehlt das Management Studio, bei den beiden rechten ist es dabei.

T
156 Beiträge seit 2010
vor 13 Jahren

Hi,
habe auch mal eine Zeit lang mit SQL Compact rumgespielt.
Ja, das Management Studio unterstützt die Compact, aber nur im gewissen Umfang. Wenn Du mehr Komfort bei der Arbeit haben willst, kann ich Dir das Plugin "ExportSqlCe" von CodePlex für's Management Studio 2008 empfehlen:
http://exportsqlce.codeplex.com
Ist auf jeden Fall eine Erleichterung. Vorrausgesetzt, dass sich das Management-Studio mal installieren lässt.
LG, Marko

Gelöschter Account
vor 13 Jahren

System.Data.SQLite von phxsoftware
Todesurteil: unterstützt kein Model First Approach (DatabaseExists und CreateDatabase nicht unterstützt)

Quelle? Ich würde sagen, das du im falschen Framework bist. Du brauchst .net 4.0 für Model First und du brauchst einen Provider, der mindestens 3.5 Funktionalität bietet. ich vermute mal, das dein Provider einfach nur alt ist. (nicht zu vergessen VS 2010)

ann habe ich gedacht, eventuell funktioniert das ja mit dem MSSQL Compact Edition. Todesurteil: Tja... siehe SQLite.

Siehe obige Antwort. es ist möglich... du nimmst nur das falsche.

Intern ist es dem EF egal was für eine Datenbank du verwendest, solange diese Create/update/insert/delete/select unterstützt...

Das SQL Server Management Studio soll das können, doch weigert es sich auf meinem Windows 7 64bit System mit Händen und Füßen, sich installieren zu lassen.

Ich habe selbiges System... mit besagtem Manager. Ist also nicht unmöglich.

Ich frage mich, ist das immer so kompliziert, wenn's ums EF geht? Boar! So viele Knüppel hatte ich ja schon lange nicht mehr unter den Füßen...

Es ist immer nur soweit kompliziert, wie man es sich selber macht. 😄

Edit: Ach ja, wenn du wirklich die DB erst spät erzeugen willst, dann brauchst du einen 4.0 fähigen provider.

F
10.010 Beiträge seit 2004
vor 13 Jahren

Da EF derzeit noch kein vernünftiges Changemanagement und versionierung unterstützt, würde ich das Anlegen einer DB damit sowieso nicht machen wollen.

Benutze zum verwalten der DB Struktur Migrator.Net oder fluentMigrator, das macht es einfacher.
Und die beiden arbeiten auch mit SQLite.

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 13 Jahren

Hmm... ich habe jetzt alles, was mit dem SQL Server zusammen hing, von meinem System runtergeworfen und versuche nun den SQL Server Compact Edition 4.0 zu installieren. Aber selbst das will nicht klappen. Die SSCERuntime_x64.exe startet zwar, ein bisschen Aktivität ist zu sehen (Mauspfeil mit grünem Kreis), und weiter passiert nichts. Der Prozess ist im Taskmanager noch zu sehen, tut aber nichts. Das selbe passiert mit der x86 Version.

Selbst zusammen mit WebMatrix lässt sich der Compact 4.0 nicht mehr installieren. Die Installation bleibt einfach stehen...

Ich kriege hier 'ne Vollkrise! Irgendwas ist da gewaltig kaputt. Verdammte Scheiße. (sorry)

**//update: **Okay... das schreit förmlich nach einer Neuinstallation meines Windows. Wird auch mal wieder Zeit. Das Ding läuft ja schon seit zwei Jahren und ist dermaßen vermüllt...

2.298 Beiträge seit 2010
vor 13 Jahren

Auch wenn das Ding seit 2 Jahren läuft und vermüllt ist, musst du nicht gleich den Holzhammer nehmen...

Fang mit ner Mülltüte an und hau alles weg, was unnötiger ballast ist...
Wenn du fertig bist, wird noch staub gewischt & gesaugt und dann sieht die Welt gewiss schon wieder besser aus...

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 13 Jahren

Muhaha, vergiss es... es tut echt mal not. Ich war ja schon einige Zeit lang auf der Suche nach einer Gelegenheit, bzw. einem Grund. Den hab ich hiermit nun endlich gefunden. 😃

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 13 Jahren

So... Holzhammer ist done.

Was mir jetzt noch fehlt, sind wohl die Tools für den SQL Server Compact Edition 4.0 für Visual Studio 2010. Jedenfalls kann ich aus dem EF-Designer raus nur Verbindungen zu Datenbanken bis Compact Edition 3.5 aufbauen. 4.0 wird nicht angeboten.

Google spuckt mir da nichts brauchbares aus. Nur irgendwelche nicht mehr existenten Downloads für das 4.0 CTP.

Gibt es die Tools dafür noch nicht? Bin ich zu doof zum Suchen? Gehe ich falsch vor? Ich stehe vor einem Rätsel...

Falls jemand da 'nen guten Link hat, evtl. sogar den Download der notwendigen Tools, wäre ich sehr dankbar.

//update: okay, wie es aussieht, funktioniert EF mit CE 4.0 wohl nur in Web-Projekten. Workarounds sollen wohl zum Beispiel Erstellung des EDMX in einem Web-Projekt und umkopieren ins Windows-Projekt sein. Wieso diese Einschränkungen, kein Plan...

//update: Ah, Workaround funktioniert. 😃

3.825 Beiträge seit 2006
vor 13 Jahren

SSC 4.0 wurde hauptsächlich für die Verwendung in Web-Projekten (weiter-) entwickelt, z.B. mit Web-Matrix oder MVC 2.

Einige Funktionen gibt es noch nicht, z.B. Replikation mit dem großen Bruder (SQL Server).

Ich bin noch unsicher ob ich meine Desktop-Applikation auf 4.0 umstelle oder auf 3.5 lasse. Oder beides erlaube 😉

Ich hoffe mal dass MS da noch nachbessert, so dass die fehlenden Sachen auch für 4.0 kommen (Replikation, EF-Designer ...)

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 13 Jahren

Das hoffe ich auch, mangels einer funktionierenden Alternative. Wenigstens kommt der MySQL Connector.NET seine Aufgabe in diesem Zusammenhang gut nach; wenn's auch 'ne extra Server-Applikation dafür braucht, auf die ich gerne verzichtet hätte. Eine dateibasierte DB lässt sich im Desktop-/Workstationbereich immer noch leichter rechtfertigen.