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é.
InformationsquelleAutor ltech | 2010-03-01