Je vais avoir un peu de problème de conversion l'instruction T-SQL suivante à LINQ (en utilisant le framework 4.0 de l'entité)T-Sql aux problèmes de conversion LINQ (ordre par)
Je reçois
Impossible de convertir le type 'System.Linq.IOrderedQueryable
1' to type 'System.Linq.IQueryable
1'. LINQ aux entités prend uniquement en charge la coulée Types de primitive Entity Data Model.
T-Sql
SELECT
I.Id
, I.Name
FROM Inventory I
WHERE I.Id in
(
select top 5 applicationId
from LastViewed
group by ApplicationId, SomeUserId
having SomeUserId = @SomeUserId
order by Max(id) desc
)
C'est ce que j'ai en ce moment (avec l'aide de Linqer)
Dim query As IQueryable(Of Inventory) =
From d In ctx.Inventories
Where
((From e In ctx.LastVieweds _
Group e By _
e.ApplicationId, _
e.SomeUserId _
Into g = Group _
Where DfaitEdsId = user _
Order By g.Max(Function(p) p.Id) Descending _
Select New With { _
ApplicationId _
}).Take(5)).Contains(New With {.ApplicationId = d.Id}) _
Select d
il se bloque actuellement quand je fais cette ligne.
query.ToList()
Merci pour votre temps.
J'ai un problème similaire ici: http://stackoverflow.com/questions/4416887/ef4-linq-2-entities-query-works-in-c-but-not- in-vb. Je soupçonne que le compilateur VB.Net est à blâmer, puisque je pourrais le faire fonctionner en C#. Pourriez-vous donner un peu plus de contexte, afin que nous puissions essayer de repro votre problème (pls expliquent ce que 'DfaitEdsId' et' user' sont)? – jeroenh