Je suis un peu coincé à ce sujet. Fondamentalement, je veux faire quelque chose comme la requête SQL suivante à Linq à SQL:
SELECT *
FROM UnitPrice
WHERE EffectiveDateTime = (SELECT MAX(EffectiveDateTime)
FROM UnitPrice AS InnerUnitPrice
WHERE InnerUnitPrice.EffectiveDateTime < GETDATE())
3 Réponses :
Je vous donne un exemple sur cette courte liste d'objets Les propriétés de la saisie de la classe sont, dans la référence (chaîne), don (chaîne), date (DateTime), Montant (double). P> première étape, nous voulons sélectionner la date la plus récente qui est précédée aujourd'hui (ce que vous faites dans votre sous-requête); À partir de notre liste, nous pourrions faire quelque chose comme ceci: p> exécutant ce que vous obtiendrez le 31/12/2018 à votre guise. Mais nous avons besoin d'une autre étape pour sélectionner toutes les informations sur la date sélectionnée. Donc, étape 2, nous mettons notre liste de départ dans une jointure intérieure avec celle que nous venons de construire: p> Le résultat sera p> comme vous le souhaitez. J'espère que cela aide! P> p>
Vous pouvez faire ce qui suit.
émuler votre scénario avec DataTable P> Vous pouvez interroger le résultat requis comme, P> 04-12-2018 00:00:00 Sample41
04-12-2018 00:00:00 Sample4
Query LINQ LAMDA:
var q = db.UnitPrice
.Where(x1 => x1.EffectiveDateTime == db.UnitPrice
.Where(x2 => x2.EffectiveDateTime < DateTime.Now)
.Max(x3 => x3.EffectiveDateTime)
)
.ToList();
Qu'est-ce que tu as essayé jusque-là? Des erreurs que vous obtenez?