Ho una chiave composta in una tabella di database/entità NHibernate. Posso in qualche modo usare il metodo .Get
per afferrare un'entità specifica o devo usare HQL/Criteria a causa della chiave composita?Utilizzo dell'ISession.Get di NHibernate <>() con una chiave composta
7
A
risposta
3
È possibile utilizzare solo Session.Get() se è stato utilizzato una classe chiave come suggerito qui: nHibernate Composite Key Class Type Mismatch
24
Con questo composito mappatura dei tasti:
<class name="MyClass">
<composite-id>
<key-property name="Key1" />
<key-property name="Key2" />
</composite-id>
<property name="..." />
</class>
... è possibile utilizzare come .Get this:
var x = Session.Get<MyClass>(new MyClass() { Key1 = 'Foo', Key2 = 'Bar'});
Questo funziona anche con ID compositi che includono classi di riferimento. Basta costruire il grafico dell'oggetto contenente gli ID richiesti. –
Voglio solo ricordare che questo non funzionerà con una classe anonima. –