Ich würde gerne wissen, ob es eine Möglichkeit gibt, das automatische Laden von Kinddatensätzen in nHibernate zu deaktivieren (für eine: viele Beziehungen).
Wir können das Lazy-Laden von Eigenschaften einfach ausschalten, aber ich möchte jede Art von automatischem Laden (faul und nicht faul) deaktivieren. Ich möchte nur Daten über Abfrage laden (d. H. HQL oder Kriterien)
Ich möchte immer noch die Beziehung zwischen übergeordneten untergeordneten Datensätzen in der Mapping-Datei definieren, um HQL zu erleichtern und übergeordneten untergeordneten Entitäten beitreten zu können, aber ich möchte nicht, dass die untergeordneten Datensätze als Teil des übergeordneten Datensatzes geladen werden, außer a Abfrage auf dem übergeordneten Datensatz
explizit besagt, dass (über eifrig holen, etc).
Beispiel:
Das Abrufen des Abteilungsdatensatzes aus der Datenbank sollte nicht alle Mitarbeiterdatensätze aus der Datenbank abrufen, da sie möglicherweise nie benötigt werden.
Eine Option besteht darin, die Employees-Auflistung in Department als Lazy Load festzulegen. Das Problem bei diesem Ansatz besteht darin, dass das Objekt, sobald es der aufrufenden API übergeben wurde, die Lazy Load-Eigenschaft "anfassen" kann und die gesamte Liste von der Datenbank abruft.
Ich habe versucht, "evict" zu verwenden - um das Objekt zu trennen, aber es scheint nicht immer zu funktionieren und führt keine tiefe Räumung des Objekts durch.
Außerdem wird der Lazy-Loaded-Eigenschaftstyp mit einer Proxy-Klasse abstrahiert, die später im Code, in dem wir versuchen, über Reflektion am Objekt zu arbeiten, Verwüstung anrichtet, und es trifft auf den nicht-expandierten Typ des Objekts.
Ich bin ein Anfänger zu nHibernate, alle Zeiger oder Hilfe wären von großer Hilfe.