DORM, Delphi ORM - это новая структура ORM OpenSource для Delphi, используемая в DelphiXE + (она также должна работать на D2010, но не тестируется на этой версии). Он поддерживает (и использует) все новые функции RTTI. Позволяет сопоставлять файлы, атрибуты и сопоставление с общей конфигурацией. На ней основаны большие производственные системы. Он будет интегрирован в Delphi Spring Framework со следующего основного выпуска. Он разработан небольшим международным сообществом (6 человек). http://code.google.com/p/delphi-orm/
Чтобы показать некоторые основные функции, на самом деле это используется unittest.
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.Я главный и основной автор DORM
Я думаю, что в настоящее время не стоит для поставщика исключительно целевого D2010 –
@Marco: Delphi 2010 представил расширенную RTTI, который требуется для сериализации/десериализации всех полей объектов (включая частные и защищенные) и атрибутов, которые являются очень мощным способом добавления метаданных к определениям классов. – mjn
Я голосую, чтобы закрыть этот вопрос как вне темы, потому что это открытое мнение вопрос. –