我刚开始使用EF和类似以下的查询令我奇怪:“it.Name”实体框架查询生成器方法:为什么“它”而不是lambdas?
var departmentQuery =
schoolContext.Departments.Include("Courses").
OrderBy("it.Name");
具体来说,什么伸出我是当我使用LINQ to SQL进行工具化时,查询生成器查询中的每个筛选器几乎都可以用lambda指定,例如,在这种情况下,d => d.Name。
我看到有OrderBy的重写需要使用返回IOrderedQueryable或IOrderedEnumable的lambdas,但是那些显然没有获取ObjectResult所需的Execute方法可能会被数据绑定。
对于我来说,毕竟我已经阅读了关于lambda如何为这种东西做出如此重要的意义,以及如何将它们翻译成表达式树,然后转换为目标语言,这似乎很奇怪 - 为什么我需要使用“ it.Name“?
另一个例子是.Where(“it.SomeProperty is not null”)。现在我已经看到了在本机C#中表现的标准查询运算符的奇怪混杂,以及完全位于TSQL-land中的显式过滤器。我认为EF的目的就是摆脱这一点。 – nlawalker 2010-06-15 22:26:01