2010-10-18 5 views

Répondre

1

Vous pouvez utiliser la fonction de nom d'entité si vous utilisez NHibernate v2.1 ou supérieur. Il est peu documenté mais j'utilise activement la fonctionnalité. Il a obtenu difficile de trouver la documentation, mais regardez ici:

Section 5.3

http://docs.jboss.org/hibernate/core/3.2/reference/en/html/mapping.html#mapping-entityname

Un couple de choses à être au courant. Vous devez maintenant utiliser le nom de l'entité au lieu du nom de la classe pour faire référence aux objets. En général, il ne s'agit pas d'un changement entièrement transparent passant des noms de classes aux noms d'entités.

actions de session exigent maintenant deux paramètres, par exemple:

_session.Save ("MyEntity", myobject)

Les contrôles de nom d'entité quelle table les données va.

Certaines requêtes HQL ne fonctionnent plus correctement, vous devez parfois utiliser Criteria à la place.

Si vous avez besoin d'un ensemble d'exemples de code, je peux en poster un peu, mais beaucoup trop occupé pour le moment. Je vous suggère de regarder les informations limitées que vous pouvez trouver et de le configurer pour un objet très simple et plusieurs tables pour apprendre comment tout cela fonctionne. Ça marche.

1

Vous pouvez créer une classe de base avec toutes les propriétés, mais vous devez tout les mapper. Pour cela, vous pouvez utiliser la copie & pâte, les entités XML (voir exemple à http://nhibernate.info/doc/nh/en/index.html#inheritance-tableperconcreate-polymorphism) ou une méthode de mappage basée sur le code (Fluent ou ConfORM). Ils facilitent généralement la réutilisation.

+0

Upvoted car cela fonctionnerait, bien que la réponse par Sisyphus est plus proche de ce dont j'ai besoin. J'utilise le même référentiel pour tous les objets (en les traitant comme le même type, mais en utilisant le nom de la table pour les identifier) – jgauffin

Questions connexes