Retrieve child records only

Given this Entity


 [Entity]
  [Table('TBLNAEHRWERT')]
  [Model('Default')]
  [Model('BLS')]
  [Id('FTBLLEBENSMITTEL', TIdGenerator.None)]
  [Id('FKATNAEHRWERT', TIdGenerator.None)]
  TTBLNAEHRWERT = class
  private
    [Column('WERT', [])]
    FWERT: Nullable<Double>;

    [Association([TAssociationProp.Lazy, TAssociationProp.Required], CascadeTypeAll - [TCascadeType.Remove])]
    [JoinColumn('HERKUNFTCD', [TColumnProp.Required], 'HERKUNFTCD')]
    [JoinColumn('LEBENSMITTELCD', [TColumnProp.Required], 'LEBENSMITTELCD')]
    FTBLLEBENSMITTEL: Proxy<TTBLLEBENSMITTEL>;
    
    [Association([TAssociationProp.Lazy, TAssociationProp.Required], CascadeTypeAll - [TCascadeType.Remove])]
    [JoinColumn('NAEHRWERTCD', [TColumnProp.Required], 'NAEHRWERTCD')]
    FKATNAEHRWERT: Proxy<TKATNAEHRWERT>;
    function GetTBLLEBENSMITTEL: TTBLLEBENSMITTEL;
    procedure SetTBLLEBENSMITTEL(const Value: TTBLLEBENSMITTEL);
    function GetKATNAEHRWERT: TKATNAEHRWERT;
    procedure SetKATNAEHRWERT(const Value: TKATNAEHRWERT);
  public
    property WERT: Nullable<Double> read FWERT write FWERT;
    property TBLLEBENSMITTEL: TTBLLEBENSMITTEL read GetTBLLEBENSMITTEL write SetTBLLEBENSMITTEL;
    property KATNAEHRWERT: TKATNAEHRWERT read GetKATNAEHRWERT write SetKATNAEHRWERT;
  end;



How do I retrieve records without the association to the parent table?

In SQL: where lebesmittelcd= .. and herkunftcd= ?

I tried

listv := mgrManager.Find<TTBLNAEHRWERT>.
  CreateAlias('KATNAEHRWERT', 'kn').
  CreateAlias('KATdimension', 'kd').
    Select(TProjections.ProjectionList.
      Add(Linq['wert']).
      Add(Linq['naehrwertcd'])
      Add(Linq['kd.dimensioncd'])
      ).
    Add(Linq['lebensmittelcd']=Rec.LebensmittelCD).
    Add(Linq['herkunftcd']=Rec.HerkunftCD).
    Add(Linq['kn.ISPORTIONSGROESSE'] = 'Y').listvalues;



But this does not work, of course.

Thanks for your support!

I cannot give you the exact query because I don't have the mapping of associated classes like TTBLLEBENSMITTEL, and I don't know what is KatDimension since it's not declared in class TTBLNAEHRWERT, but it would be something like this:




listv := mgrManager.Find<TTBLNAEHRWERT>.
  CreateAlias('KATNAEHRWERT', 'kn').
  CreateAlias('KATdimension', 'kd').
  CreateAlias(‘TBLLEBENSMITTEL’, ‘tb’)
    Select(TProjections.ProjectionList.
      Add(Linq['wert']).
      Add(Linq['naehrwertcd'])
      Add(Linq['kd.dimensioncd'])
      ).
    Add(Linq[’tb.lebensmittelcd']=Rec.LebensmittelCD).
    Add(Linq[‘tb.herkunftcd']=Rec.HerkunftCD).
    Add(Linq['kn.ISPORTIONSGROESSE'] = 'Y').listvalues;

This is, what I did and this works. However, I need data form TTBLNAEHRWERT only and due to performance reasons , I want to eliminate the JOIN to TTBLLEBENSMITTEL.

Idea: I can make an entity for reading only, without the association. Or I can use a projection with select(). Is this a good idea?

An entity for reading only is an option, yes. 

Projections are also possible, you can use SQL projection: 
https://download.tmssoftware.com/business/aurelius/doc/web/sql_projection.html