我刚读了这个问题,它让我想到了为什么我需要IEnumerable
在检索数据时使用。我了解 和 之间的区别IQueryable
,IEnumerable
但是IEnumerable
对于允许过滤的数据,对象会更好吗?例如,一个包含日期的记录表,所以我可以按日期排序。
问问题
261 次
2 回答
4
如果您在内存中有对象——而不是来自其他数据源,例如数据库——使用IEnumerable<T>
。这样,内置的 LINQ to Objects 将自动工作。
您甚至可以通过编写自定义扩展方法并使用yield return
and将 LINQ 扩展到对象yield break
。
如果您使用的是 Entity Framework 或其他正在使用的系统IQueryable<T>
,我会一直保留它,IQueryable<T>
直到您需要它作为对象。
于 2012-04-11T12:59:55.047 回答
0
这取决于。
如果您想首先接收所有数据,然后过滤返回的对象集,请使用 IEnumerable。
如果你想在数据库上启用过滤(例如 Linq-to-sql / Entity Framework),最好使用 IQueryable。
于 2012-04-11T13:15:32.707 回答