Clause where dans LINQ - C#
J'ai le texte suivant, qui travaille dans L'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 pourrais-je aller sur la conversion de LINQ? De test de code, le compilateur se plaint:
Erreur de l'Opérateur " &&' ne peut pas être appliquée à des opérandes de type 'int' et 'Système.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'étais pas à l'aide de '==' pour comparer.
Point est-ce 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 dois-je faire dans LINQ?
- Eh bien, vous n'êtes pas à montrer ce que vous avez dans votre LINQ-to-SQL code maintenant, donc c'est un peu difficile. Vous aussi ne sont pas en précisant si vous êtes à l'aide de LINQ-to-SQL et LINQ-to-Entités.
- Pour commencer, en C#
=
est utilisé pour l'affectation et l'==
est utilisé pour tester l'égalité.