J'ai ce qui suit et qui fonctionne dans Analyseur de requêtes SQL .
select oh.*
from order_history oh
join orders o on o.order_id = oh.order_id
where oh.order_id = 20119 and oh.date_inserted = (
select max(date_inserted) from order_history where order_id = oh.order_id
group by order_id
)
Comment dois-je procéder pour me convertir à LINQ ? A partir du code de test, le compilateur s'est plaint :
Erreur L'opérateur '&&' ne peut pas être appliqué aux opérandes de type 'int' et 'System.DateTime'
Mon code LINQ :
var query = from ch in cdo.order_histories
join c in cdo.orders on ch.order_id equals c.order_id
where (ch.order_id.equals(1234)) &&
(ch.date_inserted == (cdo.order_histories.Max(p => p.date_inserted)))
select new OrderData() { };
Mise à jour : je n'ai pas utilisé '==' pour la comparaison.
L'élément restant est celui de ma requête SQL :
oh.date_inserted = (
select max(date_inserted) from order_history where order_id = oh.order_id
group by order_id)
Comment faire cela avec LINQ ?