bonjour,
je cherche a faire un requête sql avec entities framework ,
voici ce que je cherche a reproduire
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 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
mais ce code produit une erreur :
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);
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
j'obtient une autre erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 .Where(a => a.org.TIE_ID == selectedTier.TIE_ID1).Cast<PERSON>()
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
Partager