anchor.diff:               | defaultSort -> this.All(whereFunc).OrderBy(defaultSort)).ToDataSourceResult(take, skip, sort, filter)
           DataSourceResult<'TDTO>(Data = buildFunc queryResult.Data, Total = queryResult.Total)*)
       
  -    member this.All(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Func<'TEntity, bool>) = 
  +    member this.All(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Expression<Func<'TEntity, bool>>) = 
           this.All(take, skip, sort, filter, whereFunc, this.DTOBuilder().BuildList)
  -    member this.AllFull(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Func<'TEntity, bool>) = 
  +    member this.AllFull(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Expression<Func<'TEntity, bool>>) = 
           this.All(take, skip, sort, filter, whereFunc, this.DTOBuilder().BuildFullList)
   
       (*member this.All(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : 'TEntity -> bool) = 
  
positive.code:     inherit BaseRepository(manager)
      member __.DTOBuilder() = GenericBusinessBuilder.GenericDTOBuilder<'TEntity, 'TDTO>()
      member __.EntityBuilder() = GenericBusinessBuilder.GenericEntityBuilder<'TDTO, 'TEntity>()
      member this.ListAsync(whereExpr : Func<'TEntity, bool>) = async { return this.List(whereExpr) } |> Async.StartAsTask
      (*member this.ListAsync(whereExpr : 'TEntity -> bool) = async { return this.List(whereExpr) } |> Async.StartAsTask*)
      member this.ListAsync() = async { return this.List() } |> Async.StartAsTask
      member this.AllAsync(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Func<'TEntity, bool>) = 
          async { return this.All(take, skip, sort, filter, whereFunc) } |> Async.StartAsTask
      (*member this.AllAsync(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : 'TEntity -> bool) = 
          async { return this.All(take, skip, sort, filter, whereFunc) } |> Async.StartAsTask*)
      member this.Set() = this.GetUnitOfWork().DbSet() :> DbSet<'TEntity>
      member this.Single([<ParamArray>] ids : obj []) = this.DTOBuilder().BuildFull(this.Set().Find(ids))
      member this.List() = this.DTOBuilder().BuildList(this.All())
      member this.List(whereExpr : Func<'TEntity, bool>) = this.DTOBuilder().BuildList(this.All(whereExpr))
      (*member this.List(whereExpr : 'TEntity -> bool) = this.DTOBuilder().BuildList(this.All(whereExpr))*)
      member this.All() = this.Set().AsQueryable()
      
      member this.All(whereExpr : Func<'TEntity, bool>) = 
          match whereExpr with
          | null -> this.All()
          | _ -> this.Set().Where(whereExpr).AsQueryable()
  
negative.code: open Caelan.Frameworks.BIZ.Interfaces
  open Caelan.DynamicLinq.Classes
  open Caelan.DynamicLinq.Extensions
  open System.Linq.Expressions
  
  [<AbstractClass>]
  [<AllowNullLiteral>]
  