Frage

ich ein Objektmodell haben, dass ich eine eingebettete Datenbank speichern wollen, verwenden. Ich habe bisher Blick auf db4o, NHibernate SQLCE (w / Linq) und RavenDB. Dies würde in einer Desktop-C # Anwendung verwendet werden.

Der Schlüssel verfügt Suche nach Hebelwirkung ist: Linq oder ähnlich für Abfragen (kein SQL oder HQL), Embedded-Daten-Engine, pocos, poco erstes Modell, keine Installation (keine Registrierung oder ähnliches)

Kann jemand vorschlagen ein? Sind die drei Ich betrachte die beste Wahl? Gibt es andere Möglichkeiten? Von den drei, kann jemand einen über die andere empfehlen?

Danke

War es hilfreich?

Lösung

Nun, die drei vorgeschlagenen Datenbanken sind sehr unterschiedlich in ihrer Natur. SQLCE mit Hibernate als RDBMS mit einem ORM, db4o als Objektdatenbank und RavenDB als Dokumentendatenbank. Jeder von ihnen hat seine Stärken.

SQL CE & NHibernate-Combo Die gute:

  • Sehr gute Unterstützung im Werkzeugbau, das Wissen und eine große Gemeinschaft gibt es
  • Einfach zu MS SQL Server upgrage
  • Extrem gute Berichterstattung Unterstützung
  • Die Macht der SQL

Die schlechte:

  • Anforderungen Mapping
  • Die Zuordnung zwischen den OO und relationaler Welt nicht einfach ist und zu Problemen mit komplexen Modellen führen kann.

RavenDB

Die gute:

  • Benötigt keine Zuordnung
  • Einfach zu bedienen
  • Leistungsstarke Indexierung
  • JSON & HTTP-Zugriff

Die schlechte:

  • Wenn Sie Ihre Domain nicht auf einen dokumentenorientierte Ansatz paßt, wird es sehr schmerzhaft sein
  • Es ist nicht die .NET Framework Client Profile unterstützen (die als die OP Frage von besonderer Bedeutung ist, über Embedded-Datenbanken)

db4o

Die gute:

  • Benötigt keine Zuordnung
  • Einfach zu bedienen
  • Das Speichermodell ist in der Nähe des Objekt-Modell. Dies funktioniert auch für sehr komplexe Modelle.
  • -

Die schlechte:

  • Tooling-Unterstützung ist schwach.

Afaik alle drei Unterstützung LINQ und POCO-First-Ansatz. Da jedoch NHibernate & SQL CE müssen noch Tonnen des Abbildens seine nicht so reibungsfrei wie es sein könnte.

Ich denke, wenn Sie Ihr Fokus auf POCO ist zunächst, LINQ-Unterstützung, ebedded Nutzung und einfach zu bedienen, würde ich RaveDB oder db4o versuchen. Wenn Ihr Fokus liegt auf ‚Sicherheit‘, Community-Wissen, Werkzeug-Unterstützung und Reporting ich mit NHibernate und SQL CE gehen würde.

Andere Tipps

Firebird ist eine tolle eingebettete Datenbank, die lange über alle modernen Funktionen einer Enterprise-Datenbank unterstützt hat:

  • ANSI SQL
  • ACID
  • Stored Procedures
  • Trigger

können Sie erhalten die .NET-Provider (Stand 24. Mai nach der Website) und unterstützt Entity Framework und Linq.

finden Sie unter href="https://stackoverflow.com/questions/684595/embedded-database-for-net">. Für LINQ Unterstützung Besuche DbLinq , oder da Sie bereits beabsichtigen NHibernate verwenden Sie NHibernate verwenden können eigener LINQ-Anbieter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top