anchor.diff:                       | true -> Activator.CreateInstance(baseType.MakeGenericType(typeof<'TEntity>, typeof<'TDTO>))
                        | _ -> Activator.CreateInstance(baseType, manager)) :?> 'TRepository
       
  -    static member CreateGenericRepository<'TEntity, 'TDTO when 'TEntity : not struct and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null>(manager : BaseUnitOfWork) = 
  +    static member CreateGenericRepository<'TEntity, 'TDTO when 'TEntity : not struct and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null and 'TDTO : not struct>(manager : BaseUnitOfWork) = 
           GenericRepository.CreateRepository<'TEntity, 'TDTO, BaseRepository<'TEntity, 'TDTO>>(manager)
  +    static member CreateGenericListRepository<'TEntity, 'TDTO, 'TListDTO when 'TEntity : not struct and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null and 'TDTO : not struct and 'TListDTO : equality and 'TListDTO : null and 'TListDTO : not struct>(manager : BaseUnitOfWork) = 
  +        GenericRepository.CreateListRepository<'TEntity, 'TDTO, 'TListDTO, BaseListRepository<'TEntity, 'TDTO, 'TListDTO>>
  +            (manager)
  
positive.code:                 Some(repo)
              with :? KeyNotFoundException -> None
          else None
      
      static member private CreateRepository<'TEntity, 'TDTO, 'TRepository when 'TEntity : not struct and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null and 'TRepository :> BaseRepository<'TEntity, 'TDTO>>(manager : BaseUnitOfWork) = 
          let baseType = typeof<'TRepository>
  
negative.code:         match whereExpr with
          | null -> this.All()
          | _ -> this.Set().Where(whereExpr).AsQueryable()
      
      member private this.All(take : int, skip : int, sort : seq<Sort>, filter : Filter, 
                              whereFunc : Expression<Func<'TEntity, bool>>, buildFunc : seq<'TEntity> -> seq<'TDTO>) = 
          let queryResult = 
  