Mapping für SQL Compact Edition

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von iCanNonIc.

    Mapping für SQL Compact Edition

    Moin,

    weiß jemand, ob es eine API oder ein Tool/Plugin gibt, dass zuverlässig ein Objekt aus primitiven Datentypen in eine Datenbank mappen kann? Und umgekehrt natürlich ^^.

    So etwas in Richtung Hibernate für Java Anwendungen.

    Am besten allerdings für SQL Compact Edition. Zur Not auch für MySQL.

    Danke!
    Du meinst, eine Struktur Serialisieren / Deserialisieren in eine Datenbank?

    Ich verstehe nur nicht, warum man da unbedingt eine Datenbank benötigt.
    Entweder würde ich eine normale XML-Datei als Speichermedium nehmen.
    Oder ich habe eh schon eine relationale Datenstruktur mit Datatables, dann binde ich die direkt an eine Datenbank.

    Du kannst die beiden Methoden natürlich kombinieren und ganze XML-Strukturen in einzelne Zellen einer Datenbank abspeichern.
    Allein mir verschliesst sich der Sinn eines solchen Vorhabens.

    Vielleicht erklärst du mir nochmals, wozu das gut sein soll.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Nein nicht serialisieren. Das ist leider nicht ganz soo einfach zu erklären.
    Also das Problem ist im Prinzip die Menge von Objekten.
    XML würde ich ungerne als Speichermedium nehmen, da eine Datenbank schon einige Vorteile bietet (Löst zum Beispiel Ausnahmen aus, wenn ein Wert nicht null sein soll, aber ist). Ob ein Wert null ist, wird aber erst zur Laufzeit des Programms bestimmt.
    Ja ansonsten die Abfragen sind bei einer Datenbank denke ich mal deutlich performanter, ich habe dann nämlich auf dutzende Tabellen verteilt zigtausende Einträge, weshalb XML jetzt nicht das Optimalste wäre. (Bei nicht so vielen Einträgen ist XML natürlich viel schneller!)

    In Java kann man beispielsweise Objekte mit dem oben genannten Tool automatisch mappen lassen.
    Das läuft in IN ETWA so (in Java) ab:

    Es wird ein Objekt hergestellt und praktisch mit Hibernate "verlinkt".
    Sobald du das Objekt erstellt hast, sorgt Hibernate dafür, dass es in der Datenbank gespeichert wird, was ja sehr viel Arbeit abnimmt. Du musst dem Objekt lediglich einen Tabellennamen geben, alle Properties (wenn es native Datentypen sind) werden automatisch in die Datenbank gemappt.
    Das Auslesen funktioniert ähnlich. Das ist natürlich super praktisch, weil es eben automatisch ist, denn überall wo das ein Mensch macht, sind.. tja eben immer Fehler drin.

    So ein Tool gibt es (für java) definitiv, hoffentlich auch für vb.net, weil es schon extrem praktisch ist, ich bin sicher nicht der erste der das Problem hat also hoffe ich mal da kennt jemand etwas!

    Danke
    Hibernate gibts auch für .Net.
    Aber in .Net verwendet man eher EntityFramework
    Ach du willst auf SqlCe mappen - na, sieh mal zu, ob du mir EF hinkommst - meine Versuche vor Jahren waren unbefriedigend.

    Oder du verwendest olle Ado.Net, also typisierte Datasets - damit gehts mit Sicherheit.

    Allen gemeinsam ist (Hibernate weiß ich nicht), dass es einen Designer gibt, der die Objekte generiert.
    Also du kannst dir nicht iwelche Objekte ausdenken, und dann auf die DB mappen, sondern du hast einen Designer, der liest die DB aus, und generiert darauf passende Objekt-Klassen.
    Diese Klassen sind dann auch via partialer Klasse nach Belieben erweiterungsfähig, ohne dadurch ihre DB-Kompatiblität zu verlieren (naja - versauen kann mans immer ;) ).
    Damit habe ich keinerlei Erfahrung, ich versuch mal da was zu basteln,

    allerdings

    ErfinderDesRades schrieb:

    dass es einen Designer gibt, der die Objekte generiert,


    was vielleicht ein Missverständnis ist, da ich ja die Objekte generieren möchte, der "Designer" soll nur dafür sorgen, dass sie exakt so gespeichert werden ;)
    Du schriebst ja, dass das nicht möglich sei, vielleicht lehne ich mich zu weit aus dem Fenster.
    Aber meiner Auffassung nach sollte es doch gehen, dass ein Designer eine bestimmte Tabelle, passend zum Objekt generiert (so lange das Objekt halt (in vb.net) native Datentypen beinhaltet, mehr als String, decimal und integer brauch ich eigentlich nicht ^^).
    Dann stellt er Methoden zum schreiben und lesen bereit. So einfach. Persistenz war noch nie meins...Ich raffs nicht :P .
    Was du meinst ist eher ein Assistent: Also ein Dingens, dem man einen Haufen Objekte hinschmeißt, und der generiert dann Tabellen? Tabellen in einer Datenbank, oder wo?

    ich weiß auch nicht, was du dir unter SqlCe vorstellst. Das ist eine Datenbank, und da sind Tabellen und Relationen drin. Da gibts nun Assistenten für, die können dir Objekt-Klassen draus generieren, mit Strings und decimal etc. Aber diese Objekt-Klassen erben alle von einer gemeinsamen Basisklasse, und sind ganz stupide nach einem strengen Schema aufgebaut.

    Was nicht geht ist, dass du irgendwelche Klassen programmierst, und denkst, es könne einen Assistenten geben, ders iwie gebacken kriegt, dass du dein Zeugs in eine DB speichern kannst.