Where-Klausel in LINQ in C#

Habe ich die folgenden, welche in SQL Query Analyzer.

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
)

Wie würde ich mich über die Umstellung auf LINQ? Aus dem test-code, der compiler beschwert:

Error Operator " (&&' angewendet werden kann nicht auf Operanden vom Typ 'int' und 'System.DateTime'

Meine LINQ-code:

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() { };

Update: ich wurde nicht mit "= = " für Vergleich.

Element übrigen ist das aus meiner SQL Abfrage:

oh.date_inserted = (
select max(date_inserted) from order_history where order_id = oh.order_id
group by order_id)

Wie mache ich das in LINQ?

  • Gut, Sie sind nicht das zeigen, was Sie in Ihrem LINQ-to-SQL-code jetzt, so ist es ein wenig schwierig. Sie sind auch nicht angeben, wenn Sie mithilfe von LINQ-to-SQL und LINQ-to-Entities.
  • Für Anfänger in C# = wird verwendet für die Zuordnung und == wird verwendet, um test für die Gleichheit.
InformationsquelleAutor ltech | 2010-03-01
Schreibe einen Kommentar