EntityDac vs TMS Aurelius

EntityDac vs TMS Aurelius

Postby devweb » Sun 09 Mar 2014 08:31

I'm just new to the new ORM things, but I saw currently two products for Delphi (except few open sources ones like DORM).

How's your products compare to TMS Aurelius?

also are you planing to have a middle-tier products so we can get the objects from the server, as TMS did with TMS XData?
devweb
 
Posts: 16
Joined: Sat 02 Feb 2008 08:10

Re: EntityDac vs TMS Aurelius

Postby AlexP » Thu 13 Mar 2014 08:58

We haven't examined TMS Aurelius in details, but we can list some differences/advantages of EntityDAC.

If the database structure was modified, then to make changes in TMS Aurelius using DataModeler, the model must be regenerated. At this, all the changes made manually will be lost and have to be made anew. EntityDeveloper allows to transpose database structure changes to the model and vice versa - data model changes can be applied to the existing database.

For setting Delphi classes mapping to tables in the database, TMS Aurelius uses attribute class mapping. EntityDAC allows to set mapping not only using attribute mapping, but Code-Mapping and XML-Mapping as well.

TMS Aurelius allows to use either Integer fields or GUID as ID. We don't have such a restriction - fields with any types can be used as ID (string, date, float, etc.).

Queries in EntityDAC look more understandable and close to LINQ queries, than in TMS Aurelius.

A TMS Aurelius query:

Code: Select all
Results := Manager.CreateCriteria<TEstimate>
.CreateAlias('Customer', 'c')
.Add(TExpression.IsNotNull('IssueDate'))
.AddOrder(TOrder.Desc('c.Name'))
.List;


An EntityDAC LINQ query:

Code: Select all
var
  E: IEmpExpression;
  Query: ILinqQueryable;
begin
  E := DataContext.Emp;

  Query := Linq.From(E)
               .Where(E.Deptno <> null)
               .OrderByDescending(E.EName)
               .Select([E.EName, E.Job, E.Dept.DName]);

  Result := DataContext.GetEntities(Query);
end;

Moreover, we haven't found out how to execute JOIN-containing queries in TMS Aurelius - and here is an example in EntityDAC:

Code: Select all
var
  E: IEmpExpression;
  D: IDeptExpression;
  Query: ILinqQueryable;
begin
  E := DataContext.Emp;
  D := DataContext.Dept;

  Query := Linq.From(E)
               .Join(D).On(D.DeptNo = E.DeptNo)
               .Select([E.EName, D.DName]);

  Result := DataContext.GetEntities(Query);
end;


For the time being, we haven't considered support for a feature similar to TMS XData in TMS Aurelius. Maybe we will support such functionality in future
AlexP
Devart Team
 
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: EntityDac vs TMS Aurelius

Postby devweb » Mon 17 Mar 2014 18:28

well said, thank you

looking forward for the final version, seems your product the way to go :)
devweb
 
Posts: 16
Joined: Sat 02 Feb 2008 08:10

Re: EntityDac vs TMS Aurelius

Postby AlexP » Wed 19 Mar 2014 12:51

We plan to release EntityDAC within a month.
AlexP
Devart Team
 
Posts: 5530
Joined: Tue 10 Aug 2010 11:35


Return to EntityDAC