It returns something, that implements IEnumerable<T>
. That fact that at the same time that thing implements IQueryable<T>
doesn't matter.
The same applies to e.g. following situation:
public ICollection<string> GetCollection()
{
return new List<string>();
}
if you try to check what is returned from GetCollection
you'll get actual class name, List<string>
in that example. But because method signature states that it returns ICollection<T>
you'll get only access to methods/properties exposed by ICollection<T>
interface (ofc. unless you explicitly cast it back to List<string>
).