Hi, scenario:
GetAll(Eager: Boolean):TList;
Get(Id: Integer; Eager: Boolean):TObject;
GetBy(Id: Integer; Eager: Boolean):TObject;
...
GetAll(Eager: Boolean):TList;
begin
Result := Manager.Find<TFAsst>
.CreateAlias('A', 'A', TFetchMode.Eager)
.CreateAlias('B', 'B', TFetchMode.Eager)
.CreateAlias('C', 'C', TFetchMode.Eager)
.CreateAlias('D', 'D', TFetchMode.Eager)
.CreateAlias('E', 'E', TFetchMode.Eager)
.CreateAlias('F', 'F', TFetchMode.Eager)
.CreateAlias('G', 'G', TFetchMode.Eager)
.CreateAlias('H', 'H', TFetchMode.Eager)
.CreateAlias('I', 'I', TFetchMode.Eager)
...
end;
Now for every Get (GetBy, Get, GetAll, ...) with Eager=true, i have to repeat every
"CreateAlias" for all methods. It's possible avoid that?
Thanks
You could just refactor it to a common method that receives a TCriteria object and add the alias there:
procedure AddMyAliases(Criteria: TCriteria);
begin
Criteria.CreateAlias('A', 'A', TFetchMode.Eager);
...
end;
with a few adjustments works fine.
Thanks, Wagner