2014-04-17 7 views
4

Donc, j'ai commencé à utiliser mongodb au lieu du serveur SQL dans ma nouvelle application. L'une des choses agréables que j'avais pour moi, en utilisant sql server était d'avoir une couche ORM telle que entity framework ou DevExpress XPO. J'ai entendu parler de NoRM pour mongo, mais j'ai regardé le site GitHUB, il dit qu'il n'est plus maintenu. Je me demandais donc si quelqu'un connaissait une solution de type ORM/ODM actuellement entretenue que je pourrais utiliser avec l'application C# .NET pour encapsuler mes interactions de classes de modèles avec la couche de persistance.mongodb orm/odm dans .net?

+0

jetez un oeil à https://github.com/RobThree/MongoRepository – Soren

Répondre

3

Ce serait une erreur de penser à Mongo de la même manière que SQL. Pensez à Mongo comme un moyen de persister vos modèles C#. Construct => Save-> Récupère toutes les données que vous devez afficher dans le modèle. Ensuite, utilisez votre collection.FindAs<ModelType>(SomeQuery) pour les obtenir à partir de la base de données.

+0

Voilà comment je pense à SQL. –

+0

Alors, suggérez-vous que l'on ne devrait PAS envisager d'utiliser l'outil ORM avec MongoDB? Est-ce parce que votre application contient déjà les modèles et que mongo peut directement les conserver/les récupérer de toute façon sans ORM? –

+0

C'est exact. Pour nous, nous utilisons une couche de domaine pour notre application. Aucun modèle n'est autorisé dans les autres couches à l'exception du modèle de domaine. Ainsi, si une méthode de couche Web a besoin de données persistantes, elle les récupère dans l'entité de domaine. Nous avons un Mongo Repo par entité de domaine lorsque nous utilisons mongo. Si vous serialisez et désérialisez le modèle de domaine à l'aide du pilote Mongo C#, aucune autre couche intermédiaire n'est nécessaire. Je pense fondamentalement à cela comme des modèles de congélation à Mongo. Ce travail pour nous à l'échelle très bien vous faites ce que vous avez besoin de le stocker pour plus tard, puis récupérez ce que vous mettez. – user2391759