背景:在接下来的一个月里,我将做三次关于LINQ的演讲,或者至少将LINQ包含在c#的上下文中。我想知道哪些话题值得花相当多的精力,这取决于人们可能很难理解哪些话题,或者他们可能有错误的印象。我不会具体讨论LINQ to SQL或实体框架,只是作为如何使用表达式树(通常是IQueryable)远程执行查询的示例。

那么,你发现LINQ有什么难的地方吗?在误解方面你看到了什么?例子可能是以下任何一个,但请不要限制自己!

c#编译器如何处理查询表达式 Lambda表达式 表达式树 扩展方法 匿名类型 这个IQueryable 延迟执行与立即执行 流与缓冲执行(例如,OrderBy被延迟但被缓冲) 隐式类型局部变量 读取复杂的泛型签名(例如Enumerable.Join)


当前回答

我不知道这是否属于误解,但对我来说,就是未知。

我很高兴了解了DataLoadOptions以及在进行特定查询时如何控制连接哪些表。

更多信息请参见这里:MSDN: DataLoadOptions

其他回答

事务(不使用TransactionScope)

大O符号。LINQ使得编写O(n^4)算法变得非常容易,如果你不知道自己在做什么的话。

我发现很难找到关于匿名类型的明确信息,特别是在web应用程序的性能方面。 此外,我会建议更好和实用的lambda表达式示例和“如何”部分在查询和性能相关的主题。

希望我的简短清单能有所帮助!

哪个更快,内联Linq-to-Sql还是使用Tsql spprocs的Linq-to-Sql

... 是否有使用服务器端(Sproc)或客户端(内联Linq)查询更好的情况。

理解语法“魔法”。理解语法如何转换为方法调用,选择了哪些方法调用。

例如:

from a in b
from c in d
where a > c
select new { a, c }

转换为方法调用。