Je suis en train d'écrire quelque chose comme ceci:Nested requêtes LINQ Saga
SELECT s.CompanyID,
s.ShareDate,
s.OutstandingShares,
s.ControlBlock
FROM (
SELECT MAX(ShareDate) AS Sharedate,
CompanyID
FROM ShareInfo
WHERE (ShareDate <= @filter_date)
GROUP BY CompanyID
) AS si
INNER JOIN
tblShareInfo AS s ON s.ShareDate = si.Sharedate AND s.CompanyID = si.CompanyID
Essentiellement, cela essaie de revenir le plus récent Partager l'information, nous gardons une histoire en cours d'exécution. Maintenant, j'essaie d'écrire quelque chose de similaire à cela dans LINQ.
Voici était ma tentative la plus proche:
From a _
In db_context.ShareInfos _
Where a.ShareDate <= filter_date _
Group a By a.CompanyID Into Group _
Select CompanyID, MostRecentShareDate = Group.Max(Function(a) a.ShareDate) _
Join b In db_context.ShareInfos On b.CompanyID Equals a.CompanyID _
Select b.CompanyID, b.ShareDate, b.OS, b.CB()
Malheureusement, cela ne compile pas. Évidemment, je ne comprends pas la syntaxe LINQ en quelque sorte. Quelqu'un peut-il me diriger dans la bonne direction?
Merci.
Ceci est la syntaxe C#, btw ... –
Je suppose que je devrais mentionner que la partie qui ne compile pas est la ligne avec la jointure sur elle. Le 'a.CompanyID' à la fin de la ligne donne l'erreur "Name 'a' n'est pas déclaré ou pas dans la portée actuelle" – Bitfiddler