'Abp Framework misses IRepository.AsNoTracking() (or cannot use Select, Where)

In the current version (3.3.1), I used IRepository.AsNoTracking, and it worked well. But when I upgrade Abp to latest version, it cannot work.

And here are 2 assemblies with difference structure (there is no IQueryable, not use Assembly Microsoft.EntityFrameworkCore,...):

  1. Version 3.3.1:
    Assembly Volo.Abp.Ddd.Domain, Version=3.3.1.0
        using System.Collections;
        using System.Collections.Generic;
        using System.Linq;
        using Volo.Abp.Domain.Entities;
        
        namespace Volo.Abp.Domain.Repositories
        {
            public interface IRepository<TEntity, TKey> : IRepository<TEntity>, IReadOnlyRepository<TEntity>, IQueryable<TEntity>, IEnumerable<TEntity>, IEnumerable, IQueryable, IReadOnlyBasicRepository<TEntity>, IRepository, IBasicRepository<TEntity>, IReadOnlyRepository<TEntity, TKey>, IReadOnlyBasicRepository<TEntity, TKey>, IBasicRepository<TEntity, TKey> where TEntity : class, IEntity<TKey>
            {
            }
        }
  1. Version 5.1.4 (latest version):
Assembly Volo.Abp.Ddd.Domain, Version=5.1.4.0
using Volo.Abp.Domain.Entities;
namespace Volo.Abp.Domain.Repositories
{
    public interface IRepository<TEntity, TKey> : IRepository<TEntity>, IReadOnlyRepository<TEntity>, IReadOnlyBasicRepository<TEntity>, IRepository, IBasicRepository<TEntity>, IReadOnlyRepository<TEntity, TKey>, IReadOnlyBasicRepository<TEntity, TKey>, IBasicRepository<TEntity, TKey> where TEntity : class, IEntity<TKey>
    {
    }
}

Please advise.



Solution 1:[1]

From https://docs.abp.io/en/abp/latest/Migration-Guides/Abp-4_2#irepository-getqueryableasync:

Beginning from the version 4.2, the recommended way is using IRepository.GetQueryableAsync() to obtain an IQueryable, then use the LINQ extension methods over it.

var queryable = await _repository.GetQueryableAsync();

var query = queryable.AsNoTracking()
    .Where(x => x.Price > 10)
    .Select(x => x.Name);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 aaron