我的代码:
internal DbSet<TEntity> DbSet;
public virtual IEnumerable<TEntity> Get()
{
IQueryable<TEntity> query = DbSet;
return query.ToList();
}
如上所示,我们调用ToList()方法。当我进入IQueryable时,我已经看到它从IEnumerable获得继承但在IEnumerable中我看不到任何ToList()方法。这种方法来自何处以及如何来自?你能帮我吗?
答案 0 :(得分:4)
IQueryable<T>
和IEnumerable<T>
提供的扩展程序通常分别在Queryable
和Enumerable
类型中找到。
请记住,前者是接口。接口不能定义实现。这些是扩展方法(带有实现),这意味着它们需要在static class
static
方法中定义。
Queryable
[MSDN] Enumerable
[MSDN]