![]() |
AW: [ORM] Lazy Loading - Wie implementieren?
Ein virtueller Getter mit Interceptor würde sicher funktionieren. Das blöde dabei ist nur, dass man wenig Nutzen hat. Man muss trotzdem einen Getter implementieren, damit etwas zum intercepten da ist. In diesem Fall würde man also ca. drei Zeilen handgeschriebenen Code (manuelle Lazy Initialization) durch eine Zeile handgeschrieben Code + Attribut + Interception + Rtti + ORM Code ersetzen. Nicht wirklich schlank ;)
Kann aber auch daran liegen, dass ich bis jetzt erst einen Kaffee getrunken habe :D |
AW: [ORM] Lazy Loading - Wie implementieren?
Zitat:
|
AW: [ORM] Lazy Loading - Wie implementieren?
Ohne Dependency auf den ORM natürlich gar nicht ;) Den müsste man injecten.
|
AW: [ORM] Lazy Loading - Wie implementieren?
Zitat:
|
AW: [ORM] Lazy Loading - Wie implementieren?
Lazy ist auch unbedingt auf dein einelnen Entitäten nötig.
Denn wenn du einen Customer über den key liest, ihm eine weitere Addresse zuordnest und abspeicherst, müsste der Customer-Datensatz in der Tabelle nie angefasst werden. (so mach das (n)Hibernate zum Bleistift) Das Implemtieren von Getter/Setter könnte auch durch abstrakte GetteR/Setter reduziert werden, dann müsste der Interceptor halt einen eigenen Store nutzen (e.g. ein Dictionary) Aber vllt solltet ihr einfach Bolemb mit Liebesentzug drohen, wenn die nicht schleunigst virtuelle und vor allem abstrakte Properties erlauben, ohne explizit Setter angeben zu müssen. (Ähnlich zu Oxygene) Das Problem, das ich bei den TVirtualInterface oder MethodInterceptor sehe ist, dass da sehr sehr viele Indirektionen im Spiel sind. Das kann schnell ganz schön lahm werden. Mal schauen wie Embello das löst, also ob die auch weitere Felder für die Proxies zulassen, so dass man nicht auch noch durch ein Dictionary müsste. Ganz zu schweigen von tatsächlich überschrieben Methoden, nicht nur Interceptions. Wenn man für jeden Call erstmal nachkieken muss, was wirklich ausgeführt werden muss, dann tut das doch weh. :cry: |
AW: [ORM] Lazy Loading - Wie implementieren?
Zitat:
|
AW: [ORM] Lazy Loading - Wie implementieren?
Zitat:
![]() |
AW: [ORM] Lazy Loading - Wie implementieren?
Mit DSharp kann man
![]() |
AW: [ORM] Lazy Loading - Wie implementieren?
Ich schätze mal, ich werd die verschiedenen Möglichkeiten einfach mal ausprobieren müssen. Für in-depth Test hab ich allerdings aktuell wenig Zeit. Messe steht an..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz