Zum Abfragen von in Relation stehenden Datensätzen nutzt man sinnvollerweise die Relationsdefinitionen.
IQueryable<OrmBABase> parents = newMyData.RelatedParents;
IQueryable<OrmBABase> children = newMyData.RelatedChildren;
OrmRoleBase createdBy = newMyData.RelatedCreatedBy;
Auf einem Datensatz kann man die Quellen und die Ziele auch unabhängig von der Definition abfragen. Mit der Angabe einer Datentabelle oder Basis-Datentabelle schränkt man die Ergebnismenge auf diesen Typen ein. Falls man keine Kenntnisse über die beteiligten Datentabellen hat, wird. OrmBABase
angegeben.
OrmCompany company = newMyData.GetSourcePrimary<OrmCompany>(EnumRelationTypeExtension.MyRelation);
Guid? companyOid = newMyData.GetSourcePrimaryOid(EnumRelationTypeExtension.MyRelation);
IQueryable<OrmBABase> sources = newMyData.GetSources<OrmBABase>(EnumRelationTypeExtension.MyRelation);
List<Guid> sourcesOids = newMyData.GetSourcesOids(EnumRelationTypeExtension.MyRelation);
Bei der Abfrage von Zielen wird immer eine Liste von Datensätzen zurückgegeben.
IQueryable<OrmMyDataTable> targets = company.GetTargets<OrmMyDataTable>(EnumRelationTypeExtension.MyRelation);
Unabhängig vom geladenen Datensatz kann man die in Relation stehenden Datensätze auch über die Api.Relation
abfragen.
OrmCompany company = Api.Relation.GetSourcePrimary<OrmCompany>(newMyData.Oid, session, EnumRelationTypeExtension.MyRelation);
IQueryable<OrmBABase> sources = Api.Relation.GetSources<OrmBABase>(newMyData.Oid, session, EnumRelationTypeExtension.MyRelation);
IQueryable<OrmMyDataTable> targets = Api.Relation.GetTargets<OrmMyDataTable>(company.Oid, session, EnumRelationTypeExtension.MyRelation);