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

ASP.NET Discussion :

linq (vb.net) SelectMany


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut linq (vb.net) SelectMany
    Bonjour,

    je cherche à faire quelque chose qui a l'air tout bête, j'ai trouvé apparemment la solution en C# sur le net mais je n'arrive pas a le transformé en vb.net.
    j'obtient toujours le message suivant :

    System.NotSupportedException*: 'Les tableaux construits ne sont pris en charge que pour Contains.'
    j'ai simplifié une partie de mon linq pour me concentré que sur la problématique : cumuler 2 champs issu de la base de donnée en un tableau :

    voici ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim allItems = From a in  dc.tAgence.SelectMany(Function(t)  {t.strEmailAgence, t.strEmailTechnique}.ToArray).ToList
    et l'exemple que j'ai trouvé sur le net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var allItems = objContext.MyTable
                    .SelectMany(t => new[] { t.Field1, t.Field2 })
                    .ToList();

    il s'agit à la base de modification de code un traitement d'envoi de mail étant fait derrière, les sources étant différente d'avant, je veux obtenir la même structure de retour que précédemment afin de ne pas y toucher.
    je pourrais le faire autrement qu'en linq, mais c'est l'occasion d'utilisé "SelectMany" que je n'ai jamais eu l'occasion d'utiliser, et de le comprendre.
    il ne s'agit que d'un morceau donc de mon linq, le but étant d'avoir par rapport à des "idAgence" une liste de la sorte :
    une liste d'idagence qui contient une liste d'email dont la source est donc issu des 2 champs (pouvant l'un ou l'autre être "Nothing")

    • 59
      • tata@mail1.com
      • toto@mail1.com

    • 62
      • titi@mail1.com
      • tutu@mail1.com
    • 68
      • tete@mail1.com
      • toutou@mail1.com


    je vous remercie d'avance.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 921
    Par défaut
    Je n'ai pas essayé mais les convertisseurs sur le net donnent ce résultat :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim allItems = objContext.MyTable.SelectMany(Function(t) {t.Field1, t.Field2}).ToList()

    Donc pas de ToArray à priori

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut
    Bonsoir,

    justement, c'est là ou j'ai pris mon exemple, d'où le reste de "allItems"

    j'ai trouvé une solution. le soucis vient du fait que mes données viennent de base de donnée, il faut que je les récupère avant dans un List,array ... d'ou le message "contains" je suppose utilisé par SelectMany. qui n'est pas très clair.
    j'avais fait un exemple en prenant directement ma table tAgence.toList

    ma correction a été apportée en prod (elle est plus fourni que ça, comme je le disais, j'ai une liaison entre DataContextes Dbml).
    j'aurais le résultat demain matin car les mails d'alertes sont envoyé à ce moment là.

Discussions similaires

  1. Requete Linq VB.net
    Par damyrid28 dans le forum Linq
    Réponses: 1
    Dernier message: 25/10/2010, 15h48
  2. Linq et .Net Framework 2 ?
    Par NiamorH dans le forum Linq
    Réponses: 5
    Dernier message: 20/04/2009, 22h04
  3. LINQ Hors C# et VB.Net
    Par Aquatiques dans le forum Framework .NET
    Réponses: 4
    Dernier message: 25/06/2008, 14h31
  4. [LINQ] La fin de ADO.net?
    Par RaelRiaK dans le forum Général Dotnet
    Réponses: 13
    Dernier message: 02/05/2008, 17h02
  5. [NET 3.0] Est-ce qu'il inclura notamment LINQ ?
    Par margagn dans le forum Général Dotnet
    Réponses: 29
    Dernier message: 09/08/2006, 13h54

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