anchor.diff:      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 : Expression<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>) = 
  +    member this.AllAsync(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Expression<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 : Expression<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>) = 
  +    member this.All(whereExpr : Expression<Func<'TEntity, bool>>) = 
           match whereExpr with
           | null -> this.All()
           | _ -> this.Set().Where(whereExpr).AsQueryable()
  
positive.code:                 where (whereExpr (item))
          }*)
      
      member private this.All(take : int, skip : int, sort : seq<Sort>, filter : Filter, whereFunc : Func<'TEntity, bool>,  buildFunc : seq<'TEntity> -> seq<'TDTO>) = 
          let queryResult = 
              (match query { 
                         for item in (typeof<'TEntity>).GetProperties(BindingFlags.Instance ||| BindingFlags.Public) 
  
negative.code: open Caelan.Frameworks.BIZ.Interfaces
  open Caelan.DynamicLinq.Classes
  open Caelan.DynamicLinq.Extensions
  open System.Linq.Expressions
  
  [<AbstractClass>]
  [<AllowNullLiteral>]
  