Vous cherchez des conseils sur la base de données .NET intégré (comme db4o, NHibernate ou RavenDB)

StackOverflow https://stackoverflow.com/questions/3580510

Question

J'ai un modèle d'objet que je veux enregistrer à l'aide d'une base de données intégrée. Je l'ai jusqu'à présent regardé db4o, NHibernate SQLCE (w / LINQ) et RavenDB. Ce système serait utilisé dans une application bureau C #.

La clé dispose que je suis à la recherche d'un effet de levier sont: Linq ou similaire pour les requêtes de moteur (pas SQL ou HQL), des données intégrées, pocos, modèle poco premier, pas d'installation (pas de registre ou similaire)

Quelqu'un peut-il proposer une? Les trois je regarde les meilleurs choix? Y at-il d'autres options? Des trois, peut-on recommander un sur l'autre?

Merci

Était-ce utile?

La solution

Eh bien, les trois bases de données proposées sont très différentes dans leur nature. SQLCE avec Hibernate SGBDR avec un ORM, db4o comme base de données objet et RavenDB comme base de données de documents. Chacun d'eux a ses points forts.

SQL CE et NHibernate-Combo Le bon:

  • Très bon soutien dans l'outillage, les connaissances et une grande communauté est là
  • Facile à upgrage aux serveurs MS SQL
  • Extrem bon soutien de rapports
  • La puissance de SQL

La mauvaise:

  • cartographie des besoins
  • La correspondance entre le OO et dans le monde relationnel est pas facile et peut conduire à des problèmes avec des modèles complexes.

RavenDB

Le bon:

  • n'a pas besoin de mapping
  • Facile à utiliser
  • indexation puissant
  • Accès JSON et HTTP

La mauvaise:

  • Si votre domaine ne correspond pas à une approche orientée document, il sera très douloureux
  • Il ne supporte pas le profil .NET Framework client (ce qui est d'une importance particulière que la question de l'OP est en ce qui concerne les bases de données embarquées)

db4o

Le bon:

  • n'a pas besoin de mapping
  • Facile à utiliser
  • Le modèle de stockage est proche du modèle d'objet. Cela fonctionne également pour les modèles très complexes.
  •  -

La mauvaise:

  • support d'outillage est faible.

AFAIK tous les trois LINQ de soutien et POCO-première approche. Cependant, depuis NHibernate et SQL CE encore besoin de tonnes de cartographie ne est pas aussi sans friction que cela pourrait être.

Je pense que si votre accent est mis sur POCO en premier lieu, LINQ-support, l'utilisation ebedded et facile à utiliser, je voudrais essayer RaveDB ou db4o. Si votre accent est mis sur la « sécurité », la connaissance communautaire, outil d'aide et les rapports que j'irais avec NHibernate et SQL CE.

Autres conseils

Firebird est un formidable base de données intégrée qui a longtemps soutenu toutes les fonctionnalités modernes d'une base de données de l'entreprise:

  • ANSI SQL
  • ACID
  • Procédures stockées
  • Triggers

Vous pouvez obtenir le fournisseur .NET (dernière mise à jour le 24 mai selon le site) et il prend en charge Entity Framework et LINQ.

Voir cette question. Pour le support LINQ, consultez DbLinq , ou depuis que vous avez l'intention d'utiliser déjà NHibernate vous pouvez utiliser NHibernate de propre fournisseur de LINQ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top