Изменения документа Сценарии
Редактировал(а) Alexandr Fokin 2024/03/05 20:34
От версии 1.10
отредактировано Alexandr Fokin
на 2023/05/02 17:45
на 2023/05/02 17:45
Изменить комментарий:
К данной версии нет комментариев
К версии 1.15
отредактировано Alexandr Fokin
на 2023/05/02 17:52
на 2023/05/02 17:52
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -22,11 +22,29 @@ 22 22 ---- 23 23 24 24 3) При всех вышеуказанном, мы можем использовать в качестве сущности БД из [[EntityFramework | EntityFrameworkCore>>doc:Разработка.NET.Работа с БД.EntityFramework | EntityFrameworkCore.WebHome]] контекста, при этом имея встроенный механизм филтьрации [[IQurable>>doc:Разработка.NET.C#.Коллекции.IQurable.WebHome]]. 25 + 26 +---- 27 + 28 +{{code language="c#"}} 29 +public static void AddScalarResolver<TEntity, TType, TResolverType>( 30 + this IObjectTypeDescriptor<TEntity> descriptor, 31 + string fieldName 32 + ) 33 + // Самодельный интерфейс для удобства, его нет в фреймворке. 34 + where TResolverType : IDataResolver<TType> 35 +{ 36 + descriptor 37 + .Field(fieldName) 38 + .Type<ScalarType<TType>>() 39 + .ResolveWith<CustomDataResolver>( 40 + e => e.LoadAsync(default!, default) 41 + ); 42 +} 43 +{{/code}} 25 25 ))) 26 -|(% style="width:144px" %)Асинхронное выполнение запросов|(% style="width:1349px" %)Если я ничего не напутал, то заметил, что при конфигурации контракта важно возвращать именно IAsyncEnumerable<T>, а не IQueryable (DbSet<T> напрямую). 45 +|(% style="width:144px" %)Асинхронное выполнение запросов|(% style="width:1349px" %)async await. 46 +Если я ничего не напутал в своем тестовом проекте, то обнаружил, что при конфигурации контракта важно возвращать именно IAsyncEnumerable<T>, а не IQueryable<T> (DbSet<T> напрямую). 27 27 Если этого не сделать, то фреймворк будет загружать данные из БД синхронно, не используя IAsyncEnumerator<T>. 28 28 |(% style="width:144px" %) |(% style="width:1349px" %) 29 29 |(% style="width:144px" %)[[Тестирование>>doc:Разработка.Тестирование.WebHome]]|(% style="width:1349px" %)GraphQL - How to write integration tests against Hot Chocolate 30 30 [[https:~~/~~/chillicream.com/blog/2019/04/11/integration-tests>>https://chillicream.com/blog/2019/04/11/integration-tests]] 31 - 32 -