DORM, ORM Delphi to nowa struktura ORM OpenSource dla Delphi do wykorzystania z DelphiXE + (powinna również działać w D2010, ale nie jest testowana w tej wersji). Obsługuje (i wykorzystuje) wszystkie nowe funkcje RTTI. Zezwala na mapowanie plików, atrybutów i odwzorowań konwencji. Są na nim oparte duże systemy produkcyjne. Zostanie on włączony do Delphi Spring Framework od następnego wydania głównego. Jest rozwijany przez małą społeczność międzynarodową (6 osób). http://code.google.com/p/delphi-orm/
Aby wyświetlić niektóre podstawowe funkcje, jest to aktualnie używany test instalacji.
procedure TTestDORM.TestCRUD;
var
p1: TPerson;
p1asstring: string;
id: integer;
begin
p1 := TPerson.NewPerson;
try
Session.Save(p1);
p1asstring := p1.ToString;
id := p1.id;
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
CheckEquals(p1asstring, p1.ToString);
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
p1.FirstName := 'Scott';
p1.LastName := 'Summer';
p1.Age := 45;
p1.BornDate := EncodeDate(1965, 1, 1);
Session.Update(p1);
p1asstring := p1.ToString;
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
CheckEquals(p1asstring, p1.ToString);
Session.Delete(p1);
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
CheckNull(p1);
Session.Commit;
finally
p1.Free;
end;
end;
P.S.Jestem głównym i główny autor akademiku
myślę obecnie nie warto dla sprzedawcy, adresowane wyłącznie D2010 –
@Marco: Delphi 2010 wprowadziła rozszerzoną RTTI który jest wymagany do serializacji/deserializacji wszystkich pól obiektów (w tym prywatnych i chronionych) oraz atrybutów, które są bardzo skutecznym sposobem dodawania metadanych do definicji klas. – mjn
Głosuję, aby zamknąć to pytanie jako niezwiązane z tematem, ponieważ jest to opinia otwarta pytanie. –