Was ist Castle Proxy-Fabrik in NHibernate? Was ist seine Aufgabe? Was bedeutet Proxy in diesem Fall?Was ist Castle Proxy-Fabrik in NHibernate?
Antwort
Castle kann verwendet werden (unter anderem haben Sie die Wahl, können Sie auch LinFu, Spring.NET, ...) verwenden, um dynamische Proxies Ihrer Entitäten zu erstellen.
Standardmäßig verwendet NHibernate dynamische Proxys zur Darstellung Ihrer Entitäten. Auf diese Weise kann ein Objekt an Sie zurückgegeben werden, wenn Sie eine Entität aus der DB abrufen, ohne dass alle Eigenschaften aufgefüllt sind. Wenn Sie einen dynamischen Proxy verwenden, füllt er nur die Entität, wenn Sie wirklich auf eine Eigenschaft verweisen.
(Es ist also eine Art von Lazy Loading; nicht zu verwechseln mit Lazy Loading von Sammlungen/Assoziationen obwohl).
Dieses Verhalten ist der Grund, warum NHibernate möchte, dass Sie jede Eigenschaft standardmäßig als virtuell erstellen: NHibernate erstellt eine neue Klasse, die diesen Castle (oder LinFu, ...) Proxy-Provider verwendet, der von Ihrer Entität erbt überschreiben Sie alle Eigenschaften, damit der Code, der zum Abrufen der erforderlichen Daten aus der Datenbank erforderlich ist, "injiziert" werden kann.
Sie können dieses Verhalten deaktivieren, indem Sie in Ihrer Entitätszuordnung 'lazy = false' angeben. (Obwohl ich denke, dass NHibernate auch dann, wenn Sie diese Funktion deaktivieren, weiterhin einen der Proxyfactorys verwenden muss).
Wenn Sie eine Entität von ISession auswählen, erhalten Sie keine echte Entitätsinstanz - Sie erhalten ein Proxy-Objekt. Dieses Proxy-Objekt erbt Ihre Entität und wird von NHibernate verwendet, um an den Feldern vorgenommene Änderungen zu verfolgen.
es zu sehen: http://en.wikipedia.org/wiki/Proxy_pattern
- 1. Empfohlene Castle Windsor/NHibernate Stack?
- 2. Was genau ist die NHibernate-Sitzung?
- 3. Was ist Tuplizer in NHibernate?
- 4. Was ist Nhibernate CurrentContext
- 5. Fluent NHibernate mit Castle Facility Benennungsstrategie
- 6. Was ist neu NHibernate in 3.0?
- 7. Unterschiede zwischen NHibernate, Castle, Linq - Auf wen zielen sie?
- 8. Was ist der Unterschied zwischen PostSharp und Castle Dynamic Proxy?
- 9. nHibernate (mit Castle ActiveRecord) mit C# -Schnittstellen (speziell für DTOs)
- 10. Verwenden von Castle Windsor und NHibernate auf Shared Hosting
- 11. Was beschäftigt Session.Clear() in NHibernate?
- 12. Castle Windsor Fließende Registrierung - Was macht Pick()?
- 13. Was ist der Unterschied zwischen ICriteria und ICriterion in nHibernate?
- 14. Was ist der Unterschied zwischen Update und Einfügen in NHibernate?
- 15. Was ist die beste Vorgehensweise für schreibgeschützte Listen in NHibernate?
- 16. Ist Bouncy Castle API Thread sicher?
- 17. Was sind die Unterschiede zwischen Castle Windsor 1.0 RC3 und Castle Windsor 2.0?
- 18. Was bedeuten sie durch Persistenz in nHibernate?
- 19. Was tatsächlich Verwendung von ISession in Nhibernate
- 20. Was ist der beste Weg Transaktion mit Nhibernate Repository verwalten
- 21. NHibernate - was ist der Unterschied zwischen ManagedWebSessionContext und WebSessionContext?
- 22. Was ist ein passender NHibernate/Iesi.Collections.Generic.ISet <T> Ersatz?
- 23. NHibernate: Fehler Dehydrierung Eigenschaft - Was zum Teufel ist das?
- 24. "Sitzung ist geschlossen!" - NHibernate
- 25. Was ist falsch an der folgenden Fluent NHibernate Mapping?
- 26. NHibernate statuslose Sitzung - was ist der Daten-Aliasing-Effekt?
- 27. NHibernate ConventionModelMapper; Was ist der Unterschied zwischen IsRootEntity & IsEntity?
- 28. Was ist los mit dieser Fluent NHibernate Konfiguration?
- 29. Was ist der beste Weg, um mit NHibernate zu beginnen?
- 30. Was ist der Unterschied zwischen llblgen und nHibernate?