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

C# Discussion :

requete sql avec entity framework


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 63
    Points
    63
    Par défaut requete sql avec entity framework
    bonjour,

    je cherche a faire un requête sql avec entities framework ,

    voici ce que je cherche a reproduire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT pers.TIE_ID
          ,[PRS_NOM]
          ,[PRS_PRENOM]
     
      FROM PERSON as pers
     
      INNER JOIN ORGANIS_PERSON as orgpers
      ON pers.TIE_ID = orgpers.TIE_ID_PRS
      INNER JOIN ORGANISATION as org
      ON  orgpers.TIE_ID_ORG = org.TIE_ID
      WHERE org.TIE_ID=1
    maintenant voici mon code c# de cette même requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    IQueryable<V_TIERS_PERSON_SMP> filteredPERS;
    filteredPERS = filteredPERS.Join(entities.ORGANIS_PERSON,
                                  dc => dc.TIE_ID,
                                  d => d.TIE_ID_PRS,
                                  (dc, d) => new { PERSON = dc, ORGANIS_PERSON = d })
                                  .Join(entities.ORGANISATION,
                                  orgpers => orgpers.ORGANIS_PERSON.TIE_ID_ORG,
                                  org => org.TIE_ID,
                                  (orgpers,org) => new { ORGANIS_PERSON = orgpers, ORGANISATION = org })
                                  .Where(a => a.ORGANISATION.TIE_ID == selectedTier.TIE_ID1);
    mais ce code produit une erreur :

    Cannot implicitly convert type 'System.Linq.IQueryable<<anonymous type: <anonymous type: EditionTiers.PERSON dc, EditionTiers.ORGANIS_PERSON d> dORGANIS_PERSON, EditionTiers.ORGANISATION ORGANISATION>>' to 'System.Linq.IQueryable<EditionTiers.PERSON>'. An explicit conversion exists (are you missing a cast?)

    sauf que si je rajoute un cast apres mon where comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Where(a => a.org.TIE_ID == selectedTier.TIE_ID1).Cast<PERSON>()
    j'obtient une autre erreur

    Une exception de type 'System.NotSupportedException' s'est produite dans EntityFramework.SqlServer.dll mais n'a pas été gérée dans le code utilisateur

    Informations supplémentaires : Impossible d'effectuer un cast du type 'type anonyme' en type 'EditionTiers.V_TIERS_PERSON_SMP'. LINQ to Entities ne prend en charge que le cast des types primitifs ou des types énumération EDM.

    et la je suis perdu svp aidé moi

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    bon après quelque heure de recherche la solution et très basic comme quoi rien ne sert de faire compliqué

    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
                        var id =GetIDOrgPers(selectedTier);
                        int[] var = new int[id.Count];
                        for (int i = 1; i < id.Count; i++)
                        {
                            var[i] = id[i].TIE_ID_PRS1;
                        }
                        filteredPERS = filteredPERS.Where(a => var.Contains(a.TIE_ID));
     
     
            public ObservableCollection<FicheTier> GetIDOrgPers(FicheTier selectedTier)
            {
     
                ObservableCollection<FicheTier> collec = null;
                using (var entities = new EditionTiers.BDDEntities())
                {
                    collec = new ObservableCollection<FicheTier>(entities.T_REL_ORGANIS_PERSON_ROP.Where(b => b.TIE_ID_ORG == selectedTier.TIE_ID1).Select(
                    tier => new FicheTier()
                    {
                        TIE_ID_PRS1 = tier.TIE_ID_PRS
                    }
                    ));
                }
                    return collec;
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Authentification a SQL avec Entity Framework
    Par lartistez dans le forum Entity Framework
    Réponses: 1
    Dernier message: 08/06/2015, 14h01
  2. Problème de connection a SQL Server avec Entity Framework
    Par Korigoth dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 15/11/2014, 19h30
  3. Comment crée une BD sur sql server avec Entity Framework ?
    Par khadi8 dans le forum Entity Framework
    Réponses: 4
    Dernier message: 14/10/2014, 20h07
  4. [Débutant] implémenter une procédure stockée SELECT en SQL SERVER avec Entity Framework
    Par Alexandre le Grand dans le forum Entity Framework
    Réponses: 5
    Dernier message: 09/01/2014, 16h04
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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