2010-08-16 9 views
-3

Supposons que j'écris un programme, mon programme a ses propres entités et autres. Et puisque j'utilise un langage OOP .Net (C#, mais pourrait être F # ou Iron Python), mes objets ont des caractéristiques OOP étranges comme l'héritage, les références à d'autres objets, et les relations hiérarchiques. Naturellement, je veux les sauvegarder tous dans ma fichue base de données, et évidemment je ne peux pas parce que c'est relationnel, et est venu de la part des mathématiciens de Dieu qui ont passé trop de temps à apprendre la Set Theory, Dieu les damne.Base de données d'objets magiques nécessaire avec les liaisons .Net

Maintenant, je peux utiliser une couche ORM, mais ce serait un peu un cauchemar, car il faut écrire toutes sortes de XML et autres.

Non. Ce que je veux, c'est une base de données avec des capacités orientées objet! peut-être même Base de données relationnelle d'objets!

Mais! Je veux aussi qu'il ait une API et des liaisons naturelles dans mon monde .Net. Je veux être capable d'écrire un chat de classe, et être capable de me dire la base de données pour sauver mon chat, et je le ferais. si cela avait un fournisseur Linq cela serait très utile aussi.

Des idées?

+5

Vous semblez être déterminé à être offensif. Pas besoin d'expletives dans votre message. – Oded

+0

C'était un peu en plaisantant. Targia gever. –

+3

Je pense que vous pourriez obtenir plus de réponses juste en demandant "Puis-je avoir une base de données relationnelle objet pour .NET?" – Will

Répondre

3

Eh bien il y a pas mal-bases de données objet avec des saveurs différentes. Certains sont faciles à utiliser optimisés pour les cas d'utilisation intégrés, comme db4o, perst.net etc. Ou plus grandes bases de données comme Versant Object Database, Objectiviy Database etc. Google pour plus de ces bases de données. Quoi qu'il en soit, une telle base de données d'objets vous permet de stocker un objet et d'essayer de conserver la sémantique. Ainsi, ils peuvent stocker des tableaux, des références, des héritages, etc. Cela permet une manière très native de gérer les données. La plupart des fournissent également un fournisseur LINQ.

Je recommande également de regarder la base de données de documents, comme RavenDB ou MongoDB. (Aussi, google pour plus d'alternatives). Ceux-ci ont aussi une interface très naturelle et vous pouvez y stocker des graphiques d'objets très complexes. Cependant, ils sont orientés «document». Cela signifie que vous stockez et mettez à jour les documents, ce qui signifie en pratique que vous stockez et objets un ensemble d'objets ensemble et mettez à jour ces mises à jour ensemble.

2

Raven DB Je pense que c'est ce que vous cherchez. Il existe d'autres bases de données de documents nosql. CouchDB, MongoDB aussi mais ce ne sont pas des implémentations .NET natives.

Les couches ORT B.T.W ne sont plus un cauchemar. Loin de là, avez-vous regarder dans L2S, EF et Fluent NHibernate? Aucun d'entre eux nécessite une configuration XML. Chacun a ses points positifs et négatifs, mais tous sont parfaitement utilisables.

+0

Je pense que ce que je cherche est PostgreSQL ou quelque chose de similaire avec un très bon fournisseur pour .Net. aussi je n'ai pas de problème avec SQL, tant que la DB elle-même peut stocker des objets –

0

Pour un tel scénario, vous pourriez envisager une base de données de documents tels que Raven: http://ravendb.net/

+0

je n'ai pas l'intention d'enregistrer des documents ... j'ai l'intention de sauver des objets très cohérents –

+0

Que voulez-vous dire par très cohérent? Ce qui sort de Raven est un objet .NET. – madcapnmckay