我有以下工作在SQL Query Analyzer。LINQ中的where子句 - C#
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
)
我該怎麼辦轉換爲LINQ?從測試代碼,編譯器抱怨:
錯誤操作 '& &' 不能應用於類型 '詮釋' 的操作數和 'System.DateTime的'
我的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() { };
更新:我沒有使用'=='進行比較。其餘
項目是這個從我的SQL查詢:
oh.date_inserted = (
select max(date_inserted) from order_history where order_id = oh.order_id
group by order_id)
如何在LINQ做到這一點?
@ltech:嗯,你現在沒有在你的LINQ-to-SQL代碼中顯示你有什麼,所以這有點困難。如果您正在使用LINQ-to-SQL或LINQ-to-Entities,您也沒有指定。 – casperOne 2010-03-01 18:46:45
對於初學者來說,在C#'='中用於賦值,'=='用於測試是否相等。 – Greg 2010-03-01 18:49:47