J'ai pour exécuter la requête SQL suivante:
select answer_nbr, count(distinct user_nbr)
from tpoll_answer
where poll_nbr = 16
group by answer_nbr
Le LINQ to SQL de la requête
from a in tpoll_answer
where a.poll_nbr = 16 select a.answer_nbr, a.user_nbr distinct
les cartes de la requête SQL suivante:
select distinct answer_nbr, distinct user_nbr
from tpoll_answer
where poll_nbr = 16
Pour l'instant, donc bon. Cependant, le problème soulève lors de la tentative de regrouper les résultats, que je suis de ne pas être en mesure de trouver un LINQ to SQL de la requête qui correspond à la première requête que j'ai écrit ici (merci LINQPad pour rendre ce processus beaucoup plus facile). Ce qui suit est le seul que j'ai trouvé qui me donne le résultat souhaité:
from answer in tpoll_answer where answer.poll_nbr = 16 _
group by a_id = answer.answer_nbr into votes = count(answer.user_nbr)
Qui à son tour produit de l'follwing laid et non optimisé à tous les requête SQL:
SELECT [t1].[answer_nbr] AS [a_id], (
SELECT COUNT(*)
FROM (
SELECT CONVERT(Bit,[t2].[user_nbr]) AS [value], [t2].[answer_nbr], [t2].[poll_nbr]
FROM [TPOLL_ANSWER] AS [t2]
) AS [t3]
WHERE ([t3].[value] = 1) AND ([t1].[answer_nbr] = [t3].[answer_nbr]) AND ([t3].[poll_nbr] = @p0)
) AS [votes]
FROM (
SELECT [t0].[answer_nbr]
FROM [TPOLL_ANSWER] AS [t0]
WHERE [t0].[poll_nbr] = @p0
GROUP BY [t0].[answer_nbr]
) AS [t1]
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [16]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1
Toute aide sera plus apprécié.