none
Le type de l'une des expressions dans la clause join est incorrect. L'inférence de type a échoué dans l'appel à 'Join' RRS feed

  • Question

  • Bonjour à tous, 

    Je débute avec Linq et j'ai déjà une erreur à l'écriture de ma requête. 

    La jointure ne veut pas se faire et je ne comprends pas pourquoi.

    L'erreur est la suivante : 

    "Le type de l'une des expressions dans la clause join est incorrect. L'inférence de type a échoué dans l'appel à 'Join'"

    public class UserSociete { public string Nom { get; set; } public string Prenom { get; set; } public string Email { get; set; } public int IDUser { get; set; } public int IDSociete { get; set; } public string Societe { get; set; }

    public UserSociete() { Nom = ""; Prenom = ""; Email = ""; IDUser = 0; Societe = ""; IDSociete = 0; } public UserSociete(string nom, string prenom, string email, int iduser, int idsociete, string societe) { Nom = nom; Prenom = prenom; Email = email; IDUser= iduser; Societe = societe; IDSociete = idsociete; } }

    List<UserSociete> listUtilisateurs = new List<UserSociete>();
    
    listUtilisateurs = from c in context.CLIENTS
                                  join u in context.USERS on c.idclient equals u.idclient
                                  select (r => new UserSociete {nom = u.Nom, prenom = u.Prenom, email = u.Mail, idsociete = c.idclient, societe = c.Nom, IDUser = u.iduser });
                  

    L'erreur va sans doute vous sauter au yeux comme le nez au milieu de la figure mais je ne la vois. 

    Je pense que ça vient de mon objet mais je ne vois pas bien où.

    Si je fais la requête sans l'objet, ça fonctionne.

    Et d'ailleurs, est-ce que commande est correctement pour que la requête passe en List ? Si je mets un ToList() il n'en veut pas. 

    Par avance merci pour votre aide.


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    vendredi 7 janvier 2022 15:35

Réponses

  • Une première correction de ma requête : 

    listUtilisateurs = from c in context.CLIENTS
                                  join u in context.USERS on c.idclient equals u.idclient
                                  select (new UserSociete { Nom = u.Nom, Prenom = u.Prenom, Email = u.Mail, IDSociete = c.idclient, Societe = c.Nom, IDUser = u.iduser });


    Mais maintenant j'ai l'erreur : 

    Impossible de convertir implicitement le type 'System.Linq.IQueryable<EasyGESTWeb.Models.UserSociete>' en 'System.Collections.Generic.List<EasyGESTWeb.Models.UserSociete>'. Une conversion explicite existe (un cast est-il manquant ?


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    vendredi 7 janvier 2022 15:49

Toutes les réponses

  • Une première correction de ma requête : 

    listUtilisateurs = from c in context.CLIENTS
                                  join u in context.USERS on c.idclient equals u.idclient
                                  select (new UserSociete { Nom = u.Nom, Prenom = u.Prenom, Email = u.Mail, IDSociete = c.idclient, Societe = c.Nom, IDUser = u.iduser });


    Mais maintenant j'ai l'erreur : 

    Impossible de convertir implicitement le type 'System.Linq.IQueryable<EasyGESTWeb.Models.UserSociete>' en 'System.Collections.Generic.List<EasyGESTWeb.Models.UserSociete>'. Une conversion explicite existe (un cast est-il manquant ?


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    vendredi 7 janvier 2022 15:49
  • Bon ben j'ai fini par trouver je pense. 

    avec un simple listUtilisateurs = requete.ToList(); 

    il semblerait ca marche


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    vendredi 7 janvier 2022 15:53