Objectspaces
Eintrag zuletzt aktualisiert am: 07.06.2006
Das
Object Persistance Framework (alias Objectspaces) war eine Microsoft-Technologie für die Speicherung von Objekten in relationalen
Datenbanken. Objectspaces überbrückt dabei transparent den Impedance Mismatch zwischen Objekten und
Datenbank. Objectspaces war Teil von
ADO.NET 2.0 in der
.NET Framework 2.0 Alpha-Version, wurden dann aber nicht ins finale Produkt übernommen, weil es Überschneidungen mit dem datenbankbasierten
Dateisystem WinFS sowie Leistungsprobleme gab.
Objectspaces kehrt zurück als Teil von ADO
.NET 3.0/
LINQ.
Die folgenden Informationen beziehen sich auf den Objectspaces-Ansatz in
ADO.NET 2.0 Alpha!!!
Objectspaces (
System.Data.ObjectSpaces) verwendet Mapping Files zur Übersetzung zwischen Objekten und der darunterliegenden relationalen
Datenbank. Das Mapping File kann mit Hilfe der Hilfsklasse ObjectPersistence erstellt werden. Die Hilfsklasse erstellt ein einfaches Mapping (1 Klasse == 1 Tabelle).
Für Mapping-Files bietet
Visual Studio einen Designer.
SpeichernEine Klassen, deren Objekt persistiert werden sollen, müssen nicht von einer Basisklasse abgeleitet sein.
Es können auch private Mitglieder persistiert werden.
1. Markieren mit os.StartTracking(obj, InitialState.Inserted)
2. Speichern mit os.PersistChanges(obj)
LadenAbfragen mit GetObjectSet() auf der Klasse ObjectSpace durch die Methode GetObject() bzw. GetObjectReader() mit Hilfe von OPath gestellt werden.
Direct Query: Unterobjekte einzeln explizit abfragen
Span: Unterobjekte werden automatisch mit geladen
Delayed Loading (alias Lazy Loading) möglich, indem für Objektmengen mit ObjectList realisiert werden. Objekte werden dann erst bei Bedarf aus der Datenbank geladen.
Geplant:
Einsatz von Generics um Type-Cast zu vermeiden
Reqort Query Language
ÄndernSpeichern mit PersistChanges(). (verwendet optistischen Locking)
Transactionen möglich mit BeginTranction(), Commit() und Abort(). (dann pessimistisches Locking)
wird automatischen in Enterprise Services Transaction gelistet, wenn Komponenten in COM+ läuft