Access List on Inheritance Strategy

Hi, consider this peace of Schema generated by Data Modeler:

interface

type
  TProduct = class;
  TPerProd = class;
  TAZ_Prod = class;
  TSchPPro = class;
  ...

  [Entity]
  [Table('Product')]
  [Inheritance(TInheritanceStrategy.JoinedTables)]
  [Sequence('Id_Product')]
  [Id('FId', TIdGenerator.IdentityOrSequence)]
  TProduct = class
  private
    [Column('Id', [TColumnProp.Required])]
    FId: Int64;

    [ManyValuedAssociation([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate, TCascadeType.Merge], 'FProductId')]
    FAZ_ProdList: Proxy<TList<TAZ_Prod>>;

    function GetAZ_ProdList: TList<TAZ_Prod>;
  public
    constructor Create;
    destructor Destroy; override;
    property Id: Int64 read FId write FId;
    property AZ_ProdList: TList<TAZ_Prod> read GetAZ_ProdList;
  end;

  [Entity]
  [Table('PerProd')]
  [PrimaryJoinColumn('Id')]
  TPerProd = class(TProduct)
  private
    [ManyValuedAssociation([TAssociationProp.Lazy, TAssociationProp.Required], [TCascadeType.SaveUpdate, TCascadeType.Merge], 'FPerProdId')]
    FSchPProList: Proxy<TList<TSchPPro>>;
    function GetSchPProList: TList<TSchPPro>;
  public
    constructor Create;
    destructor Destroy; override;
    property SchPProList: TList<TSchPPro> read GetSchPProList;
  end;

  [Entity]
  [Table('AZ_Prod')]
  [Sequence('Id_AZ_Prod')]
  [Id('FId', TIdGenerator.IdentityOrSequence)]
  TAZ_Prod = class
  private
    [Column('Id', [TColumnProp.Required])]
    [Description('')]
    FId: Int64;

    [Association([TAssociationProp.Lazy, TAssociationProp.Required], CascadeTypeAll - [TCascadeType.Remove])]
    [JoinColumn('ProductId', [TColumnProp.Required], 'Id')]
    FProductId: Proxy<TProduct>;

    [Association([TAssociationProp.Lazy, TAssociationProp.Required], CascadeTypeAll - [TCascadeType.Remove])]
    [JoinColumn('AccZoneId', [TColumnProp.Required], 'Id')]
    FAccZoneId: Proxy<TAccZone>;

    function GetProductId: TProduct;
    procedure SetProductId(const Value: TProduct);
    function GetAccZoneId: TAccZone;
    procedure SetAccZoneId(const Value: TAccZone);
  public
    property Id: Int64 read FId write FId;
    property RecVersion: TDateTime read FRecVersion write FRecVersion;
    property ProductId: TProduct read GetProductId write SetProductId;
    property AccZoneId: TAccZone read GetAccZoneId write SetAccZoneId;
  end;


  [Entity]
  [Table('SchPPro')]
  [PrimaryJoinColumn('Id')]
  TSchPPro = class(TSchedul)
  private
    [Association([TAssociationProp.Lazy, TAssociationProp.Required], CascadeTypeAll - [TCascadeType.Remove])]
    [JoinColumn('PerProdId', [TColumnProp.Required], 'Id')]
    FPerProdId: Proxy<TPerProd>;

    function GetPerProdId: TPerProd;
    procedure SetPerProdId(const Value: TPerProd);
  public
    property PerProdId: TPerProd read GetPerProdId write SetPerProdId;
  end;
  ...

implementation

function TProduct.GetAZ_ProdList: TList<TAZ_Prod>;
begin
  result := FAZ_ProdList.Value;
end;

constructor TPerProd.Create;
begin
  inherited; // inherited added manually
  FSchPProList.SetInitialValue(TList<TSchPPro>.Create);
end;

constructor TProduct.Create;
begin
  FAZ_ProdList.SetInitialValue(TList<TAZ_Prod>.Create);
  FProdCmpList.SetInitialValue(TList<TProdCmp>.Create);
  FProdClaList.SetInitialValue(TList<TProdCla>.Create);
end;
...
end.

I'm try to create TPerProd but don't have access to AZ_ProdList, maybe Data modeler should add inherited on constructor TPerProd.Create?
Maybe i'm missing something...
Add manually "inherited" every time schema is generated by data module, is not an option.


Indeed calling base constructor was missing. This has been fixed, you can update to version 2.6.1 now.