심각하게, 나는 간단한 것을 놓치고 있어야합니다. 어떤 도움이라도 대단히 감사하겠습니다.IQueryable vs IEnumerable ... 확장 메서드
다음은 시나리오입니다. 1) 적절한 서명 (IQueryable, int x, int y)을 사용하여 DoSomething이라는 IQueryable 확장 메서드를 만듭니다. 2) IQueryable과 동일한 서명을 사용하여 DoSomething이라는 IEnumerable 확장 메서드를 만듭니다. 단, IQueryable 대신 IEnumerable을 수락하거나 반환하는 것을 제외하고는. 3) IEnumerable 확장 메서드 내에서 열거 형을 Queryable (AsQueryable)로 변환하고 IQueryable.DoSomething 메서드를 호출 해보십시오.
위의 시나리오는 IQueryable 대신 IEnumerable 확장 메서드를 재귀 적으로 호출하는 것으로 나타납니다. 나는 왜 그런지 이해하지 못한다.
IQueryable은 IEnumerable을 확장한다는 것을 알고 있습니다. 그러나 .NET 확장은 올바르게 감지하고 작동하는 것 같습니다. 예를 들어, variable.AsQueryable(). Intellisense (및 ReSharper)를 통해 적어도 Take (1)는 Enumerable 확장이 아닌 Queryable 확장을 호출합니다. 필자가 직접 작성하면 작동하지 않는 것처럼 보이고 무한 루프가 생성됩니다.
귀하의 질문에 조금 낡은 소식이 있습니다. 모든 업데이트? 전체 예제를 제공하면이를 따라 움직일 수 있습니다. – DannyMeister