2017-05-19 3 views
1

In Entity Framework, wenn ich lazy laden und Proxy deaktivieren, werden Verknüpfungen nie geladen werden, bis ich sie explizit einschließen.NHibernate Eager Laden

Wie kann ich das gleiche Verhalten in NHibernate erhalten?

ich in den Mapping-Konfigurationsdateizuordnungen geladen werden, die völlig entgegengesetztes Verhalten von Entity Framework faul = false zu setzen versuchte

ist
<set name="associations" table="parentChild" lazy="false"> 
...... 
</set> 

Gibt es eine Möglichkeit Entity Framework Verhalten

Antwort

1

Es scheint zu bekommen dass Sie nach lazy=no-proxy Option suchen, gibt es das nächste Ergebnis, was Sie erreichen möchten.

lazy (optional - defaults to proxy): by default, single point associations are proxied. lazy="no-proxy" specifies that the property should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation. lazy="false" specifies that the association will always be eagerly fetched.

(von Hibernate docs, gilt aber nach wie vor auf NHibernate)

+0

XML-Validierungsfehler: Das Attribut 'Lazy' ist ungültig –

0

Wenn Ihr Ziel dieser Eigenschaften werden proxied zu vermeiden, siehe Hazzik answer. Dies führt dazu, dass die Holding-Entity stattdessen proxiiert wird.

Wenn Sie versuchen, auf diese Eigenschaften zugreifen zu können, ohne dass sie geladen werden, bleibt (entsprechend den tatsächlichen Daten in db) null (null oder leer für Sammlungen), NHibernate bietet hierfür keine Funktion, ausgenommen Mapping dieser Eigenschaften (was natürlich auch kein eifriges Laden erlaubt).

Wenn es das spätere ist, warum brauchen Sie das? Vielleicht sollten Sie eine andere Frage stellen, warum Sie das wollen und wie Sie es lösen können (vielleicht ohne das).

Verwandte Themen