internal static IQueryProvider IncludeInternal <T>(this IQueryable <T> query, string path) { if (query.Provider is IncludeQueryProvider includeQueryProvider) { includeQueryProvider = new IncludeQueryProvider(typeof(T), includeQueryProvider); } else if (query.Provider is DefaultQueryProvider defaultQueryProvider) { includeQueryProvider = new IncludeQueryProvider(typeof(T), defaultQueryProvider); } else { return(query.Provider); } includeQueryProvider.Include(path); return(includeQueryProvider); }
internal static IncludeQueryProvider IncludeInternal <T>(this IQueryable <T> query, string path) { if (!(query.Provider is INhQueryProvider)) { throw new InvalidOperationException("Include method is supported only for NHibernate queries"); } if (query.Provider is IncludeQueryProvider includeQueryProvider) { includeQueryProvider = new IncludeQueryProvider(typeof(T), includeQueryProvider); } else if (query.Provider is DefaultQueryProvider defaultQueryProvider) { includeQueryProvider = new IncludeQueryProvider(typeof(T), defaultQueryProvider); } else { throw new InvalidOperationException($"Query provider {query.Provider} is not supported."); } includeQueryProvider.Include(path); return(includeQueryProvider); }