Есть ли новый ORM для Delphi 2010?
В Delphi 2010 появились новые функции RTTI, которые я прочитал, это упростит инструменты ORM и значительно более чистый код.
но я не нашел никаких ORM, включенных в эти функции.
Как вы думаете, Embarcadero должен был построить один и включить его с Delphi
Ответы
Ответ 1
Структура Spring (использующая расширенный RTTI Delphi 2010) имеет в своей дорожной карте Entity Framework:
http://code.google.com/p/delphi-spring-framework/
Delphi Spring Framework - это международный проект с открытым исходным кодом, задача которого - обеспечить надежную инфраструктуры, которая помогите разработчикам Delphi построить солидные, гибкое и расширяемое предприятие приложений и библиотек классов на Embarcadero® Delphi® 2010 для Платформа Win32.
Ответ 2
Еще одна выпущенная Delphi 2010 + ORM - DORM. Он использует новые функции RTTI и способен сохранять любой простой объект Delphi.
Возьмите, возможно, взгляд на ORM клиент-сервер, например mORMot - который отлично работает с Delphi 2010 - измерение клиент-сервер стоит упомянуть в мире SOA.
Ответ 3
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
Ответ 4
TMS Aurelius использует новые возможности RTTI, представленные в последней версии Delphi. Он также использует генераторы, перегрузку оператора и другие новые функции Delphi, что делает его совместимым только с Delphi 2010 и выше.
Ответ 5
О каких именно чертах вы говорите?
Для Delphi существует несколько ORM: ORM для DELPHI win32
Ответ 6
попробуйте использовать hcOPC (проект с открытым исходным кодом) в http://www.tpersistent.com/