/// <summary> /// /// </summary> /// <typeparam name="TEntity"></typeparam> /// <typeparam name="TKey"></typeparam> /// <typeparam name="TProperty"></typeparam> /// <param name="repository"></param> /// <param name="entity"></param> /// <param name="propertyExpression"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static async Task EnsurePropertyLoadedAsync <TEntity, TKey, TProperty>( this IBasicRepository <TEntity, TKey> repository, TEntity entity, Expression <Func <TEntity, TProperty> > propertyExpression, CancellationToken cancellationToken = default ) where TEntity : class, IEntity <TKey> where TProperty : class { if (repository.UnProxy() is ISupportsExplicitLoading <TEntity, TKey> repo) { await repo.EnsurePropertyLoadedAsync(entity, propertyExpression, cancellationToken); } }