When I execute:
Result := ObjectManager.Find<TGrade>.OrderBy('ID').List;
ID not set on entity of class TGrade
Please let me know what might be causing the exception. Below is how the entity is mapped. FYI, I have a similar entity (TProgram) which has also inherits from TCategory and executing the same query using TProgram does not produce an exception.
TCategory = class(TModel)
private
FID: Integer;
FCaption: string;
FAbbrev: string;
FOrdValue: Integer;
protected
property ID: Integer read FID write FID;
property Caption: string read FCaption write FCaption;
property Abbrev: string read FAbbrev write FAbbrev;
property OrdValue: Integer read FOrdValue write FOrdValue;
end;
[Entity]
[Table('T_GRADE')]
[ID('ID', TIdGenerator.IdentityOrSequence)]
TGrade = class(TCategory)
private
FNextID: Nullable<Integer>;
[Association([TAssociationProp.Lazy], CascadeTypeAll - [TCascadeType.Remove])]
[JoinColumn('SUB_DIVISION_ID', [TColumnProp.Required])]
FSubDivision: Proxy<TSubDivision>;
[Column('OLD_ABBREV', [], 10)]
FOldAbbrev: string;
function GetSubDivision: TSubDivision;
procedure SetSubDivision(const Value: TSubDivision);
public
[Column('ID', [TColumnProp.Required])]
property ID;
[Column('CAPTION', [TColumnProp.Required, TColumnProp.Unique], 25)]
property Caption;
[Column('ABBREV', [TColumnProp.Required, TColumnProp.Unique], 5)]
property Abbrev;
[Column('NEXT_ID', [])]
property NextID: Nullable<Integer> read FNextID write FNextID;
[Column('ORD_VALUE', [TColumnProp.Required])]
property OrdValue;
property OldAbbrev: string read FOldAbbrev write FOldAbbrev;
FYI, here is the mapping for TProgram, which does NOT create an exception:
[Entity]
[Table('T_PROGRAM')]
[ID('ID', TIdGenerator.IdentityOrSequence)]
TProgram = class(TCategory)
private
FOldID: Integer;
public
[Column('ID', [TColumnProp.Required])]
property ID;
[Column('CAPTION', [TColumnProp.Required, TColumnProp.Unique], 25)]
property Caption;
[Column('ABBREV', [TColumnProp.Required, TColumnProp.Unique], 5)]
property Abbrev;
[Column('ORD_VALUE', [TColumnProp.Required])]
property OrdValue;
[Column('OLD_ID', [])]
property OldID: Integer read FOldID write FOldID;
end;