Ich habe zwei zugehörige Geschäftsobjekte - A und B. die Zuordnung ist (A-> B) viele-zu-eins, mit B.Id a Fremdschlüssel in A (also A hat A.B_id in der DB).NHibernate - Zugriff auf die ID eines verknüpften Objekts ohne Lazy Laden des gesamten Objekts
Ich benutze faul = true und löste die meisten meiner Probleme, aber in A's ToString möchte ich auch A.B.Id drucken, was ich ohne weitere Fahrten zur DB haben sollte. Der Zugriff auf A.B aktiviert den Proxy und löst eine Ausnahme aus, da dies nicht im Kontext einer geöffneten Sitzung liegt.
eine einfache, aber hässliche Lösung wäre A.B_id Eigenschaft zu haben. aber das ist Teil der Dinge, die wir in erster Linie vermeiden wollten. jeder "organische" Weg, dies zu tun? :) danke!
UPDATE: Lesen Sie nur über Caching und Session.Get vs Session.Load. bevor ich nur neu, dass man eine Ausnahme löst, wenn das Objekt nicht existiert (Session.Load), und das andere gibt ein Null-Objekt (Session.Get) zurück. Nach dem Lesen über Caching here ist es klar, dass Session.Load einen Proxy an das Objekt zurückgibt, und es nur träge holt, wenn auf eine andere Eigenschaft als die ID zugegriffen wird, was sehr ähnlich ist, was ich von Assoziationen brauche! für jetzt habe ich die einzelnen Objekt-IDs (hinzugefügt B_Id zu A, so kann ich es als A.B_Id Zugriff statt Abid zu verwenden)
Warum möchten Sie dies tun? – Paco
wie gesagt, nur für den Protokolldruck usw., in A's ToString(). Ich brauche keine anderen Felder von B. nur die ID. –