Есть ли новый 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/