1

Je connais les annotations pour faire le mapping hibernate en Java et je cherche maintenant une façon similaire de faire la même chose en C# et NHibernate. J'ai découvert qu'il existe plusieurs approchesQuelle est la manière la plus productive de faire le mapping NHibernate?

  • faire la mise en correspondance dans les fichiers xml
  • NHibernate.Mapping.Attributes (NHMA)
  • Courant
  • sont là plus ??

J'ai essayé NHMA et a découvert qu'il avait des points de blocage pour moi ...

Je ne veux pas que vous discuter, ce qui est la meilleure façon de cartographier les modèles à NHibernate, mais je cherchais une bonne comparaison sur internet.

Connaissez-vous ces sites? Quels sont les principaux points à considérer, si je choisis l'un des «cadres» énumérés ci-dessus? Je pense à des aspects comme «ce projet est-il officiellement soutenu par les NH-Developers?», «Existe-t-il des modèles qui peuvent être mappés dans xml-mapping mais pas couramment/NHMA/etc ...?

Que pouvez-vous recommander? Pourquoi?

Répondre

4

Fluent NHibnernate auto mapping ou la génération de code (CodeSmith, MyGeneration, T4, etc.) sont les moyens les plus productifs pour créer les fichiers de mappage. Je n'aime pas l'approche des attributs parce que j'aime garder mes POCOs simples.

+0

+1 doivent aller couramment garder Poços propre et pour éviter des problèmes XML désagréables lorsque des objets sont modifiés. –

2

Une autre option, si cela ne vous dérange pas d'attributs, est Castle ActiveRecord.

Here's an article qui pourraient vous aider à décider.

+0

J'apprécie votre poste. Merci pour l'article. Les attributs de mon modèle ne me dérangent pas, mais je ne veux pas que chaque entité hérite d'une classe de base hors de l'infrastructure ActiveRecord. Et je ne veux pas que mes entités s'occupent de leur propre stockage. Comme un DAO mieux;) –

+0

Hériter de ActiveRecordBase est entièrement facultatif. En tant que DAO, vous pouvez utiliser ActiveRecordMediator ou un wrapper comme IRepository d'Ayende: http://github.com/ayende/rhino-tools/blob/master/commons/Rhino.Commons.ActiveRecord/Repositories/ARRepository.cs –