Delphi 2010有新的ORM吗?

时间:2010-05-31 08:53:23

标签: delphi orm delphi-2010

Delphi 2010具有关于RTTI的新功能,我读到它将使ORM工具和更清晰的代码更容易。

但我没有发现任何ORM包含这些功能。

你认为Embarcadero应该建立一个并用Delphi包含它

6 个答案:

答案 0 :(得分:8)

Spring框架(使用Delphi 2010扩展RTTI)在其路线图上有一个实体框架:

http://code.google.com/p/delphi-spring-framework/

  

Delphi Spring Framework是一个   国际开源项目,   其使命是提供强大的   基础设施框架将   帮助Delphi开发人员建立稳固,   灵活,可扩展的企业   基于应用程序和类库   在Embarcadero®Delphi®2010上   Win32平台。

答案 1 :(得分:8)

另一个刚刚发布的Delphi 2010+ ORM是DORM。它确实利用了新的RTTI功能,并且能够保留任何普通的Delphi对象。

或许看一下像<{3}}这样的客户端 - 服务器 ORM - 适用于Delphi 2010 - Client-Server 维度值得一提SOA世界。

答案 2 :(得分:4)

DORM,Delphi ORM是Delphi的一个新的ORM OpenSource框架,可以在DelphiXE +上使用(它也应该在D2010上运行,但它没有在该版本上进行测试)。它支持(并使用)所有新的RTTI功能。允许文件,属性和Convention Over Configuration映射。有基于它的大型生产系统。它将在下一个主要版本中集成到Delphi Spring Framework中。 它由一个小型国际社区(6人)开发。 http://code.google.com/p/delphi-orm/

为了显示一些基本功能,这是实际使用的单位测试。

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的主要作者和主要作者

答案 3 :(得分:3)

TMS Aurelius使用最近Delphi版本中引入的新RTTI功能。它还使用泛型,运算符重载和其他新的Delphi功能,这使得它只与Delphi 2010兼容。

答案 4 :(得分:1)

你在谈论什么功能?

Delphi有几个ORM:ORM for DELPHI win32

答案 5 :(得分:0)

尝试在http://www.tpersistent.com/

中使用hcOPC(opensource项目)