diff --git a/JsonApiDotnetCore.sln b/JsonApiDotnetCore.sln index f868670ebd..bb07f87439 100644 --- a/JsonApiDotnetCore.sln +++ b/JsonApiDotnetCore.sln @@ -204,6 +204,7 @@ Global {09C0C8D8-B721-4955-8889-55CB149C3B5C}.Release|x86.ActiveCfg = Release|Any CPU {09C0C8D8-B721-4955-8889-55CB149C3B5C}.Release|x86.Build.0 = Release|Any CPU {DF9BFD82-D937-4907-B0B4-64670417115F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF9BFD82-D937-4907-B0B4-64670417115F}.Debug|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs b/src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs index 854a962a9f..f16bd86f52 100644 --- a/src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs +++ b/src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs @@ -140,7 +140,7 @@ public virtual IQueryable Sort(IQueryable entities, List public virtual async Task GetAsync(TId id) { - return await GetQueryable().SingleOrDefaultAsync(e => e.Id.Equals(id)); + return await Select(GetQueryable(), _jsonApiContext.QuerySet?.Fields).SingleOrDefaultAsync(e => e.Id.Equals(id)); } /// @@ -148,7 +148,7 @@ public virtual async Task GetAndIncludeAsync(TId id, string relationshi { _logger?.LogDebug($"[JADN] GetAndIncludeAsync({id}, {relationshipName})"); - var includedSet = Include(GetQueryable(), relationshipName); + var includedSet = Include(Select(GetQueryable(), _jsonApiContext.QuerySet?.Fields), relationshipName); var result = await includedSet.SingleOrDefaultAsync(e => e.Id.Equals(id)); return result; diff --git a/src/JsonApiDotNetCore/Services/EntityResourceService.cs b/src/JsonApiDotNetCore/Services/EntityResourceService.cs index 3fb01fa4be..815c34157b 100644 --- a/src/JsonApiDotNetCore/Services/EntityResourceService.cs +++ b/src/JsonApiDotNetCore/Services/EntityResourceService.cs @@ -108,8 +108,7 @@ public virtual async Task> GetAsync() if (_jsonApiContext.Options.IncludeTotalRecordCount) _jsonApiContext.PageManager.TotalRecords = await _entities.CountAsync(entities); - if (_jsonApiContext.QuerySet?.Fields?.Count > 0) - entities = _entities.Select(entities, _jsonApiContext.QuerySet.Fields); + entities = _entities.Select(entities, _jsonApiContext.QuerySet?.Fields); // pagination should be done last since it will execute the query var pagedEntities = await ApplyPageQueryAsync(entities); @@ -243,7 +242,7 @@ protected virtual IQueryable IncludeRelationships(IQueryable e private async Task GetWithRelationshipsAsync(TId id) { - var query = _entities.GetQueryable().Where(e => e.Id.Equals(id)); + var query = _entities.Select(_entities.GetQueryable(), _jsonApiContext.QuerySet?.Fields).Where(e => e.Id.Equals(id)); _jsonApiContext.QuerySet.IncludedRelationships.ForEach(r => {