真剣に、単純なものが欠けている必要があります。どんな助けでも大歓迎です。
シナリオは次のとおりです。1) 適切な署名 (IQueryable、int x、int y) を使用して、DoSomething という IQueryable 拡張メソッドを作成します。2) IQueryable の代わりに IEnumerable を受け入れる/返すことを除いて、IQueryable と同じ署名を使用して DoSomething と呼ばれる IEnumerable 拡張メソッドを作成します。3) IEnumerable 拡張メソッド内で、enumerable を Queryable (AsQueryable) に変換し、IQueryable.DoSomething メソッドの呼び出しを試みます。
何らかの理由で、上記のシナリオは、IQueryable ではなく IEnumerable 拡張メソッドを再帰的に呼び出しているように見えます。理由がわかりません。
IQueryable が IEnumerable を拡張することを理解しています。ただし、.NET 拡張機能は正しく検出して動作するようです。たとえば、 variable.AsQueryable().Take(1) は、少なくとも intellisense (および ReSharper) を介して、Enumerable 拡張ではなく、Queryable 拡張を呼び出します。独自のコードを作成すると、機能していないように見え、無限ループが作成されます。