IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

Delete by id into one list


Sujet :

.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 28
    Points : 28
    Points
    28
    Par défaut Delete by id into one list
    Bonsoir, je rencontre un petit soucis concernant un delete by id dans une list.
    J'ai une entité qui possède une list et donc j'aimerais pouvoir delete un object de celle-ci sans tout delete : la partie en rouge me permet de "delete by id" mais du coup la list complète.
    Je sais que le delete ce trouve dans le foreach et du coup que ce comportement est "normal", mais je vois pas bien comment je peux target directement l'id en question et la delete.
    Est-ce un traitement coté Angular ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    if (goodsReceiptProtocolVM.Status == GoodsReceiptProtocolStatus.ReceivingIncident)
                {
                    if (goodsReceiptProtocolVM.Litigations.Any())
                    {
                        foreach (var litigationVM in goodsReceiptProtocolVM.Litigations)
                        {
                            if (litigationVM.Quantity.HasValue || !string.IsNullOrEmpty(litigationVM.Reference) || !string.IsNullOrEmpty(litigationVM.Comments))
                            {
                                if (litigationVM.Id.HasValue)
                                {
                                    var lit = goodsReceiptProtocol.Litigations.SingleOrDefault(p => p.Id == litigationVM.Id);
                                    if (lit != null)
                                    {
                                        UpdateLitigationFromViewModel(lit, litigationVM, user);
                                    }
                                }
                                if (litigationVM.Id.HasValue)
                                {
                                    var liti = goodsReceiptProtocol.Litigations.SingleOrDefault(p => p.Id == litigationVM.Id);
                                    if (liti != null)
                                    {
                                        litigationService.DeleteLitigation(liti);
                                    }
                                }
                                else
                                {
                                    var litigation = new Litigation();
                                    UpdateLitigationFromViewModel(litigation, litigationVM, user);
                                    goodsReceiptProtocol.Litigations.Add(litigation);
                                }
                            }
                        }
                    }
                }
    Bonne journée à vous !

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Le mieux c'est de créer une liste deleteItems par exemple qui contiendra t'as liste d'id, donc à chaque fois que t'as un id à supprimer tu l'ajoute à cette liste, à la fin de ton foreach tu parcours t'as liste deleteitems et là tu peux faire ton delete sur ta liste principale

    Enfin si j'ai bien compris ce que tu cherches à faire

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Ouai donc en gros je crée une nouvelle list dans laquelle je lui ajoute mon id le temps du delete et ensuite je récupère à nouveau ma list initiale qui ne contient plus l'id en question.
    Si je résume bien ??

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Tu delete dans ta liste goodsReceiptProtocolVM.Litigations depuis le foreach de ta nouvelle liste deleteItems

    si j'ai bien compris ce que tu voulais faire

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Au final j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    goodsReceiptProtocol.Litigations
           .Where(p => goodsReceiptProtocolVM.Litigations == null || this.goodsReceiptProtocolVM.Litigations.Count(p => p.id == p.id) == 0)
           .ToList() // Create a copy of the list because Remove() needs to operate on a different list.
           .ForEach(goodsReceiptProtocolLitigation => litigationService.DeleteGoodsReceiptProtocolLitigations(goodsReceiptProtocolLitigation);
    Voilà

Discussions similaires

  1. Problème lors d'un delete avec une relation one-to-many
    Par el_harrathi dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 01/11/2011, 15h01
  2. hibernate delete lists + update
    Par bendf82 dans le forum Hibernate
    Réponses: 1
    Dernier message: 04/10/2007, 09h20
  3. Bug? (The List must be able to access one data set)
    Par nicolemans72 dans le forum BIRT
    Réponses: 3
    Dernier message: 19/01/2007, 20h53
  4. Requete insert into depuis une zone de liste
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 07/06/2006, 14h23
  5. delete de liste chainee
    Par Luther13 dans le forum C++
    Réponses: 3
    Dernier message: 22/12/2005, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo