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