2
我知道Linq-to-SQL已經死了,但無論如何,我認爲這是非常基本的,我只是對Linq-to-SQL到底在做什麼和不做什麼的問題感到困惑。在顯式的LINQ-to-SQL(C#)中,順序很重要嗎?
如果我已經建立了一個表達式樹爲「比如說myPredicate」,並有這樣的事情:
(from request in DataContext.RequestsTable
select request).Where(myPredicate)
.OrderByDescending(item => item.changeDate)
.Take(10)
是它會像下面的SQL工作:
SELECT TOP 10 * FROM RequestsTable
WHERE (<<myPredicate equivalent>>)
ORDER BY ChangeDate DESC
這似乎只是對我來說很奇怪,因爲「.Where()」出現在我的示例代碼中的「select」之後。 「select」和「where()」和「orderby()」的相對位置是否會影響事物?
或者,我可以在sql-esque語法中做到這一切嗎?例如,是否有一些方法可以在替代語法中使用我的WHERE謂詞,像這樣?
(from request in DataContext.RequestsTable
where [somehow inject myPredicate]
order by changeDate descending
select request).Take(10)
+1對於由linq2sql生成的T-SQL優於EFs T-SQL :)(沒有足夠的人大聲說出來),只要我們(開發人員)想要保存它,l2s就不會死活着...... – 2009-04-14 00:16:32