我有一个如下所示的接口...
public interface IAccountRepository : IDisposable {
IQueryable<Account> FindByUserId(int userId); //here, Resharper says "Return type can be IEnumerable<Account>"
}
但是Resharper建议我将其改为IEnumerable<Account> FindByUserId(int userId)
。
为什么呢?这样做不会强制将整个对象加载到内存中吗?我认为推迟执行直到真正需要对象会更好,不是吗?
.Count()
或.ToList()
这样的方法之前,它才会被加载到内存中。 - Pierre-Luc Pineault.Where...
),而不会预先将结果加载到内存中的对象中。显然,IEnumerable不具备这种能力,对吗? - Rosdi KasimIQueryable<T>
方法,但这并不意味着它将来不会被使用,对吧?或者我有什么遗漏吗? - Rosdi Kasim