Мы используем HC v12, и нам необходимо переопределить значение MaxBatchSize по умолчанию для загрузчиков данных (по умолчанию оно равно 1024, несмотря на то, что в документации указано, что по умолчанию оно неограничено). В частности, нам нужен неограниченный (или очень большой) размер пакета.
Пример пользовательского загрузчика данных в документации вводится посредством внедрения параметров, но мы используем преобразователи кода, такие как:
Код: Выделить всё
descriptor.Field("myField")
.Type()
.Argument(
"projectId",
a => a
.Type()
.Description("The ID of the current project"))
.Resolve(async context =>
{
// resolver code here
});
Похоже, что нет способа настроить загрузчик данных с помощью встроенного контекста.BatchDataLoader, поэтому мы подумали использовать собственный класс загрузчика данных, но этот класс требует параметров конструктора, зависящих от контекста, и предназначен для автоматического внедрения. Мы используем преобразователи кода, поэтому для нас это не вариант. Пример загрузчика данных из документации:
Код: Выделить всё
public PersonBatchDataLoader(
IPersonRepository repository,
IBatchScheduler batchScheduler,
DataLoaderOptions? options = null)
: base(batchScheduler, options)
{
_repository = repository;
}
Так как же мы можем использовать, скажем, экземпляр PersonBatchDataLoader внутри нашего метода Resolve? Кажется, больше невозможно получить его через context.DataLoader, как в этой старой проблеме.
Подробнее здесь:
https://stackoverflow.com/questions/792 ... d-resolver