Dear Support Team,
i have an entity "appointment" with an association "appointment_entry".
...
[ManyValuedAssociation([],CascadeTypeAll)]
Fapt_entries: Proxy<TList<Tapp_appointment_entry>>;
...
it works fine, but a "order by" with an appointment_entry field not work.
here my Delphi source:
echoTimer.Enabled:=false;
dayPlanner.BeginUpdate;
aPlItems:=fManager.Find<Tapp_appointment>
.createAlias('apt_entries','ae')
.where(Linq['apt_vehicle']>0)
.refreshing
.orderBy('apt_starttime')
.orderBy('ae.ae_position')
.List;
if aPlItems=nil then exit;
for aPlItem in aPlItems do
begin
if aPlItem.apt_vehicle<>nil then
SetItemFieldsAndColors(aPlItem);
end;
finally
dayPlanner.EndUpdate;
aPlItems.free;
echoTimer.Enabled:=true;
end;
The "OrderBy('appointment.starttime') works.
But the second "OrderBy('ae.ae_position') has no effect.
I have implement your SQL-Monitor from your "Music demo App".
Aurelius generate the following SQL:
SELECT A.ID AS A_ID, A.APT_STARTTIME AS A_APT_STARTTIME, A.APT_ENDTIME AS A_APT_ENDTIME, A.APT_REASON AS A_APT_REASON, A.APT_GROUP AS A_APT_GROUP, A.APT_COLLECT AS A_APT_COLLECT, A.APT_GROUP_POINT AS A_APT_GROUP_POINT, A.APT_GROUP_ADDRESS AS A_APT_GROUP_ADDRESS, A.APT_SERIES AS A_APT_SERIES, A.APT_POSITION_COUNT AS A_APT_POSITION_COUNT, A.FVERSION AS A_FVERSION, A.APT_VEHICLE_veh_number AS A_APT_VEHICLE_veh_number, B.veh_number AS B_veh_number, B.veh_license_plate AS B_veh_license_plate, B.veh_concession_number AS B_veh_concession_number, B.veh_FIN AS B_veh_FIN, B.veh_designation AS B_veh_designation, B.veh_shape AS B_veh_shape, B.veh_registration AS B_veh_registration, B.veh_deregistration AS B_veh_deregistration, B.veh_seats AS B_veh_seats, B.veh_changer AS B_veh_changer, B.veh_lagguage AS B_veh_lagguage, B.veh_wheelchair AS B_veh_wheelchair, B.veh_payment AS B_veh_payment, B.veh_planner AS B_veh_planner, B.veh_dealer AS B_veh_dealer, B.veh_brand AS B_veh_brand, A.APT_DRIVER_ID AS A_APT_DRIVER_ID, C.ID AS C_ID, C.EMP_FIRSTNAME AS C_EMP_FIRSTNAME, C.EMP_LASTNAME AS C_EMP_LASTNAME, C.EMP_STREET AS C_EMP_STREET, C.EMP_ZIPCODE AS C_EMP_ZIPCODE, C.EMP_CITY AS C_EMP_CITY, C.EMP_PHONE AS C_EMP_PHONE, C.EMP_MOBILE AS C_EMP_MOBILE, C.EMP_MAIL AS C_EMP_MAIL, C.EMP_ENTRY AS C_EMP_ENTRY, C.EMP_EXIT AS C_EMP_EXIT, C.EMP_IS_DRIVER AS C_EMP_IS_DRIVER, C.EMP_COLOR AS C_EMP_COLOR
FROM app_appointment A
LEFT JOIN app_vehicle B ON (B.veh_number = A.APT_VEHICLE_veh_number)
LEFT JOIN app_employees C ON (C.ID = A.APT_DRIVER_ID)
LEFT JOIN app_appointment_entry D ON (D.APT_ENTRIES_APP_APPOINTMENT_ID = A.ID)
WHERE A.APT_VEHICLE_veh_number > :p_0
ORDER BY A.APT_STARTTIME Asc,
D.AE_POSITION Asc
p_0 = "38" (ftInteger)
SELECT A.ID AS A_ID, A.AE_POSITION AS A_AE_POSITION, A.AE_PICKUPTIME AS A_AE_PICKUPTIME, A.AE_PERSON_NR AS A_AE_PERSON_NR, A.AE_PERSON AS A_AE_PERSON, A.AE_INFO AS A_AE_INFO, A.AE_DEPARTURE AS A_AE_DEPARTURE, A.AE_ARRIVAL AS A_AE_ARRIVAL, A.AE_DISTANCE AS A_AE_DISTANCE, A.AE_TRANSPORT AS A_AE_TRANSPORT, A.AE_AMOUNT AS A_AE_AMOUNT, A.AE_PAYMENT AS A_AE_PAYMENT, A.AE_CALC_TRANSPORT AS A_AE_CALC_TRANSPORT, A.FVERSION AS A_FVERSION
FROM app_appointment_entry A
WHERE A.APT_ENTRIES_APP_APPOINTMENT_ID = :p_0
p_0 = "52" (ftInteger)
SELECT A.ID AS A_ID, A.AE_POSITION AS A_AE_POSITION, A.AE_PICKUPTIME AS A_AE_PICKUPTIME, A.AE_PERSON_NR AS A_AE_PERSON_NR, A.AE_PERSON AS A_AE_PERSON, A.AE_INFO AS A_AE_INFO, A.AE_DEPARTURE AS A_AE_DEPARTURE, A.AE_ARRIVAL AS A_AE_ARRIVAL, A.AE_DISTANCE AS A_AE_DISTANCE, A.AE_TRANSPORT AS A_AE_TRANSPORT, A.AE_AMOUNT AS A_AE_AMOUNT, A.AE_PAYMENT AS A_AE_PAYMENT, A.AE_CALC_TRANSPORT AS A_AE_CALC_TRANSPORT, A.FVERSION AS A_FVERSION
FROM app_appointment_entry A
WHERE A.APT_ENTRIES_APP_APPOINTMENT_ID = :p_0
p_0 = "52" (ftInteger)