And this works fine, because I could go on use the dictionary and don't have to take care of changing column-names in several locations (or at least create a const for each column-name...)
FetchEager: Manager.Find<TEntiy>.FetchEager(Dic.Entity.Child.AssociationName).List;
works fine, but Manager.Find<TEntiy>.FetchEager(Dic.Entity.Child.AnotherChild.AssociationName).List;
does not work, because you have to do it in that way: Manager.Find<TEntiy>.FetchEager(Dic.Entity.Child.AssociationName + '.' + Dic.Entity.Child.AnotherChild.AssociationName).List;
it would be nice, if we could do this like that: Manager.Find<TEntiy>.FetchEager(Dic.Entity.Child.AnotherChild.FullAssociationName).List;
You got these Informations already in TAureliusEntityDictionary.
But we could not access these...
IChangeLogDictionary = interface(IAureliusEntityDictionary)
function Id: TLinqProjection;
function TableName: TLinqProjection;
function DatasetId: TLinqProjection;
function ChangeType: TLinqProjection;
function ChangedOn: TLinqProjection;
function ChangedBy: TLinqProjection;
function FieldLog: IFieldChangeLogDictionary;
end;
TChangeLogDictionary = class(TAureliusEntityDictionary, IChangeLogDictionary)
public
function Id: TLinqProjection;
function TableName: TLinqProjection;
function DatasetId: TLinqProjection;
function ChangeType: TLinqProjection;
function ChangedOn: TLinqProjection;
function ChangedBy: TLinqProjection;
function FieldLog: IFieldChangeLogDictionary;
end;
{ TChangeLogDictionary }
function TChangeLogDictionary.Id: TLinqProjection;
begin
Result := Prop('Id');
end;
function TChangeLogDictionary.TableName: TLinqProjection;
begin
Result := Prop('TableName');
end;
function TChangeLogDictionary.DatasetId: TLinqProjection;
begin
Result := Prop('DatasetId');
end;
function TChangeLogDictionary.ChangeType: TLinqProjection;
begin
Result := Prop('ChangeType');
end;
function TChangeLogDictionary.ChangedOn: TLinqProjection;
begin
Result := Prop('ChangedOn');
end;
function TChangeLogDictionary.ChangedBy: TLinqProjection;
begin
Result := Prop('ChangedBy');
end;
function TChangeLogDictionary.FieldLog: IFieldChangeLogDictionary;
begin
Result := TFieldChangeLogDictionary.Create(PropName('FieldLog'));
end;