J'ai une clé composite dans une table de base de données/entité NHibernate. Puis-je en quelque sorte utiliser la méthode .Get
pour saisir une entité spécifique ou dois-je utiliser HQL/Critères en raison de la clé composite?Utilisation de ISession.Get de NHibernate <>() avec une clé composite
7
A
Répondre
3
Vous ne pouvez utiliser Session.get() si vous avez utilisé une classe clé comme le suggère ici: nHibernate Composite Key Class Type Mismatch
24
Avec cette application clé composite:
<class name="MyClass">
<composite-id>
<key-property name="Key1" />
<key-property name="Key2" />
</composite-id>
<property name="..." />
</class>
... vous pouvez utiliser comme .get ceci:
var x = Session.Get<MyClass>(new MyClass() { Key1 = 'Foo', Key2 = 'Bar'});
Cela fonctionne même avec les ID composites qui incluent des classes référencées. Construisez simplement le graphe d'objet contenant les ID demandés. –
Je veux juste mentionner que cela ne fonctionnera pas avec une classe anonyme. –