public DataLoaderResolver(Func <TSource, TKey> keySelector, DataLoaderResolverDelegate <TKey, TReturn> resolverDelegate) { _keySelector = keySelector; _captureFieldContext = true; _loaderContext = new DataLoaderContext(); _loader = new DataLoader <TKey, TReturn>(ids => resolverDelegate(ids, _lastContext.Value), _loaderContext); }
/// <summary> /// Configures a field to use a <see cref="DataLoaderResolver"/> to resolve batches. /// </summary> public static FieldBuilder <TSource, IEnumerable <TReturn> > BatchResolve <TSource, TKey, TReturn>(this FieldBuilder <TSource, object> fieldBuilder, Func <TSource, TKey> keySelector, DataLoaderResolverDelegate <TKey, TReturn> fetchDelegate) { return(fieldBuilder .Returns <IEnumerable <TReturn> >() .Resolve(new DataLoaderResolver <TSource, TKey, TReturn>(keySelector, fetchDelegate))); }