Bonjour à tous,

J'ai besoin de faire une requête Linq qui me retourne la dernière position en date de chacun de mes véhicule et je vois pas trop comment m'y prendre.

J'ai une liste de véhicules dont j'enregistre dans ma BDD leurs positions à intervalle régulier. Quand le client se connecte, il voit s'afficher sur une map l'ensemble de ses véhicules, situés sur la map grâce à la dernière position enregistrée.

Je me dis qu'il n'ai pas nécessaire que je retourne au client l'ensemble des point si c'est pour me servir uniquement du dernier en date.

Dans mon DomainService, j'ai donc une 1ère fonction qui me retourne la liste des véhicule du client :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public IQueryable<Vehicule> GetVehiculeByCustomers(int _customerID) {
 
            var _vehiculeList = from _vehicule in this.DataContext.VEHICULES
                             where _vehicule.CU_ID == _customerID
                             select _vehicule;
 
            return _vehiculeList ;
        }
Ensuite c'est là que je me pose des question :

Est-il possible de retourner dans la même requête ci dessus les véhicule et les dernières position en date ?

Dois - je plutôt utiliser une autre requête du style ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 public List<POSITIONDETAIL> GetLastPOSITIONDETAILByVEHICULE(IQueryable<VEHICULE> _vehiculeList) {
            var _positionDetailList = new List<POSITIONDETAIL>();
 
            foreach (VEHICULE _vehicule in _vehiculeList)
            {
                //Comment faire pour que dans cette liste je ne récupère que la dernière position en date ??
                var _lastPositionDetail = from _positionDetail in this.DataContext.POSITIONDETAILs where _positionDetail.VEHICULE_ID == _vehicule.VEHICULE_ID select _positionDetail;
 
                _positionDetailList.Add(_lastPositionDetail);
            }
 
            return _positionDetailList;
        }
Le truc c'est que comme la table POSITIONDETAIL va très vite comprendre beaucoup d'enregistrement, j'aimerai optimiser les requêtes sur cette dernière au maximum, et je ne suis pas encore vraiment à l'aise avec toutes les possibilité de Linq, notamment les sort(), where(), first() ...

Cordialement MoZo