例如,如果我与 dlinq 竞争
var custq = data.StoreDBHelper.DataContext.Customers as IEnumerable <Data.SO.Customer>;
我认为与跑步没有太大区别:
var custq = data.StoreDBHelper.DataContext.Customers as IQueryable <Data.SO.Customer>;
因为,IQueryable 继承自 IEnumerable。
但是我发现了以下内容,如果您调用: custq.Sum() 那么程序将在您调用 .toList() 时处理它,您使用“as IEnumerable”,因为程序上的内存提升到同一级别,当我尝试过,custq.ToList.Sum() 但不在“as IQueryable”上(因为问题随后在 sql server 上运行)并且不影响程序的内存使用情况。
我的问题很简单,你不应该在 Dlinq 上使用“as IEnumerable”吗?但是“作为 IQueryable”作为一般规则?我知道,如果您正在运行标准迭代,它会在“as IEnumerable”和“as IQueryable”之间得到相同的结果。
但是,仅仅是 where 语句中的汇总函数和委托表达式会有所不同 - 还是如果您使用“as IQueryable”,您通常会获得更好的性能?(用于 DLinq 实体上的标准迭代和过滤功能)
谢谢 !