Announcement

Collapse
No announcement yet.

SQLite und NHibernate --> Foreign Key Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLite und NHibernate --> Foreign Key Problem

    Hi!
    Ich möchte übungsweise ne kleine Anwendung programmieren. Dazu wollte ich ursprünglich SQLite verwenden und NHibernate als OR-Mapper.
    Ich musste feststellen, dass SQLite standardmäßig keine Fremdschlüssel erzeugt.
    Diese Seite hier http://glossar.hs-augsburg.de/SQLite...Keys_erzwingen beschreibt, wie man SQLite dazu zwingt, Fremdschlüssel zu akzeptieren, durch Trigger.
    Nun mein Problem. Im Grunde ist dies ja nun gar kein richtiger Fremdschlüssel, richtig? Was dazu führt, dass ich NHibernate nicht mit SQLite verwenden kann, falls ich Fremdschlüssel verwenden möchte?! Da dort beim Mapping ja "echte" Fremdschlüssel angegeben werden müssen. Korrekt?
    Das hätte mir eigentlich schon vorher klar sein können, war es jedoch nicht.
    Erst durch eine aktuelle Fehlermeldung ist mir das bewusst geworden:
    NHibernate.MappingException : could not instantiate id generator: foreign
    Vllt. kennt sich hier ja jemand im Forum mit den beiden Techniken aus und kann mir sagen, ob es nun tatsächlich nicht geht, oder ob ich doch nur was falsch mache und das Problem umgangen werden kann...das wäre super!

    Gruß

  • #2
    Schau mal hier

    Die verwenden auch SQLite mit NHibernate

    Comment


    • #3
      Hi!

      Das Problem hier ist, dass die keine Foreign Keys verwenden und das für mich wichtig wäre. SQLite mit NHibernate funktioniert ja soweit schon bei mir, solange ich keine Foreign Keys verwende. Aber anscheinend gibts halt Probleme mit den FKs.

      Gruß

      Comment


      • #4
        Warum brauchst Du denn unbedingt FKs? Solange Du auf die DB nur mit NHibernate zugreifst kannst Du Dir sparen. NHibernate sorgt für die Integrität Deiner Daten. Die FKs in der Datenbank sind eigentlich nur ein doppelter Schutz (ausser ein anderes Programm greift noch auf die Daten zu)

        Comment


        • #5
          Naja, ich denke es ist lediglich sicherer und vermutlich einfacher, sobald es denn funktioniert. Gerade wenn man beispielsweise ein Update oder ähnliches machen möchte.

          Comment


          • #6
            Aber wenn Du es nur von NHibernate benutzt macht Dir NHibernate die FKs implizit. Das passiert automatisch in NHibernate. Du kannst ja einem Objekt nur Objekte zuweisen die auch wirklich existieren. Also kannst Du gar keinen ungültigen Zustand haben. Ausserdem lässt sich bei NHibernate auch einstellen, dass ein Feld NOT-NULL sein muss. Das wird aber von NHibernate geprüft und nicht von der Datenbank. Recht viel mehr bieten standardconstraints aus der DB sowieso nicht.
            Natürlich ist es sauberer gescheite FKs zu haben. Aber solang die Datenbank nur von NHibernate aus benutzt wird würde ich da mal drüber hinweg sehen.

            Comment

            Working...
            X