2017-06-14 10 views
-1

Alors que je travaille un projet que je l'ai vu cette ligne de cartographie NHibernateQue font les attributs inverse et readonly dans NHibernate napping?

HasMany(entity => entity.Tasks).KeyColumn("APPLICATION_ID").Cascade.AllDeleteOrphan().ReadOnly().Inverse(); 

est la première fois pour moi que je vois quelqu'un en utilisant l'inverse et les attributs readonly donc s'il vous plaît quelqu'un pourrait me les expliquer.

+2

https://stackoverflow.com/questions/713637/inverse-attribute-in-nhibernate –

+0

double possible de [Attribut inverse dans NHibernate] (https://stackoverflow.com/questions/713637/inverse-attribute- in-nhibernate) –

+0

Le rationnel derrière 'inverse' est davantage documenté dans [NHibernate reference] (http://nhibernate.info/doc/nhibernate-reference/collections.html#collections-bidirectional), c'est un mécanisme essentiel pour bidirectionnel les associations. Et 'Readonly' est un raccourci pour' mutable = "false" ', comme expliqué [ici] (http://notherdev.blogspot.fr/2012/01/mapping-by-code-set-and-bag.html) . Voir [demander], vous êtes censé faire des recherches avant de demander. –

Répondre

0

Vous trouverez une description détaillée de inverse here

TLDR; à partir du lien

  • inverse est un attribut booléen qui peut être mis sur la collecte applications, quel que soit le rôle de la collection (à savoir au sein d'un à plusieurs, many-to-many, etc.), et joindre la cartographie.

  • Nous ne pouvons pas mettre l'inverse sur d'autres types de relations, comme plusieurs-à-un ou un-à-un.

  • Par défaut, l'inverse est défini sur false.
  • Inverse n'a pas de sens pour les relations unidirectionnelles, il ne doit être utilisé que pour les relations bidirectionnelles.
  • La recommandation générale est d'utiliser inverse = "true" sur exactement un côté de chaque relation bidirectionnelle. Lorsque nous ne définissons pas l'inverse, NHProf va se plaindre des mises à jour superflues.

Et ce link pour Readonly

TLDR; La seule différence à part la dénomination différente pour certaines propriétés et le nom de propriété contre Map lui-même est la méthode ReadOnly disponible dans FNH. C'est juste un raccourci pour définir à la fois .Not.Insert() et .Not.Update().

+0

Il n'y a pas d'attributs 'update' ou' insert' sur le mappage de collections. Pour les collections, Fluent 'ReadOnly' est un raccourci pour' mutable = "false" '. –