DORM, Delphi ORM è un nuovo framework OpenSource ORM per Delphi utilizzabile da DelphiXE + (dovrebbe funzionare anche su D2010, ma non è stato testato su quella versione). Supporta (e usa) tutte le nuove funzionalità RTTI. Permette il mapping di file, attributi e convenzione sulla configurazione. Esistono grandi sistemi di produzione basati su di esso. Sarà integrato in Delphi Spring Framework dalla prossima major release. È sviluppato da una piccola comunità internazionale (6 persone). http://code.google.com/p/delphi-orm/
Per mostrare alcune caratteristiche di base, questo è un unittest effettivamente utilizzato.
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.Sono l'autore principale e principale di DORMITORIO
fonte
2012-02-17 15:25:56
penso attualmente non vale la pena per un fornitore di indirizzare esclusivamente D2010 –
@Marco: Delphi 2010 ha introdotto estesa RTTI che è necessario serializzare/deserializzare tutti i campi oggetto (compresi privati e protetti) e Attributi che sono un modo molto potente per aggiungere metadati alle definizioni di classe – mjn
Sto votando per chiudere questa domanda come off-topic perché è un parere a tempo indeterminato domanda. –