anchor.diff:      abstract EntityBuilder : unit -> BaseEntityBuilder<'TDTO, 'TEntity>
       override this.EntityBuilder() = GenericBusinessBuilder.GenericEntityBuilder<'TDTO, 'TEntity>()
       abstract Single : 'TKey -> 'TDTO
  +    
       override this.Single(id) = 
  -        let item = query {
  -            for item in this.Set() do
  -            where (item.ID.Equals(id))
  -            headOrDefault
  -        }
  +        let item = 
  +            query { 
  +                for item in this.Set() do
  +                    where (item.ID.Equals(id))
  +                    headOrDefault
  +            }
           this.DTOBuilder().BuildFull(item)
  -
  -    member this.AllAsync(take, skip, sort, filter, whereFunc) = async { return this.All(take, skip, sort, filter, whereFunc) } |> Async.StartAsTask
  +    
  +    member this.AllAsync(take, skip, sort, filter, whereFunc) = 
  +        async { return this.All(take, skip, sort, filter, whereFunc) } |> Async.StartAsTask
       member this.SingleAsync(id) = async { return this.Single(id) } |> Async.StartAsTask
   
   and [<AbstractClass>] BaseUnitOfWorkManager(uow : IUnitOfWork) = 
       let unitOfWork = uow
       member this.GetDbSet<'TEntity, 'TDTO, 'TKey when 'TKey :> IEquatable<'TKey> and 'TEntity :> IEntity<'TKey> and 'TEntity : not struct and 'TDTO :> IDTO<'TKey> and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null and 'TKey : equality>(repository : BaseRepository<'TEntity, 'TDTO, 'TKey>) = 
  -        repository.DbSetFuncGetter().Invoke(uow.Context())
  +        uow.Context().Set<'TEntity>()
       member this.SaveChanges() = uow.Context().SaveChanges()
       member this.SaveChangesAsync() = async { return! uow.Context().SaveChangesAsync() |> Async.AwaitTask }
       member this.Entry<'TEntity>(entity : 'TEntity) = uow.Context().Entry(entity)
  +    member this.Dispose() = ()
  +    interface IDisposable with
  +        member this.Dispose() = this.Dispose()
   
   [<AbstractClass>]
   type BaseCRUDRepository<'TEntity, 'TDTO, 'TKey when 'TKey :> IEquatable<'TKey> and 'TEntity :> IEntity<'TKey> and 'TEntity : not struct and 'TDTO :> IDTO<'TKey> and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null and 'TKey : equality>(manager) = 
  
positive.code: 
  and [<AbstractClass>] BaseRepository<'TEntity, 'TDTO, 'TKey when 'TKey :> IEquatable<'TKey> and 'TEntity :> IEntity<'TKey> and 'TEntity : not struct and 'TDTO :> IDTO<'TKey> and 'TEntity : equality and 'TEntity : null and 'TDTO : equality and 'TDTO : null and 'TKey : equality>(manager) = 
      inherit BaseRepository(manager)
      [<DefaultValue>] val mutable private dbSetFunc : Func<DbContext, DbSet<'TEntity>>
      member this.DbSetFunc 
          with set (value) = this.dbSetFunc <- value
      member internal this.DbSetFuncGetter() = this.dbSetFunc
      abstract Set : unit -> DbSet<'TEntity>
      override this.Set() = this.GetUnitOfWork().GetDbSet(this)
      abstract All : unit -> IQueryable<'TEntity>
  
negative.code:         result
      
      abstract AllFull : int * int * seq<Sort> * Filter * Expression<Func<'TEntity, bool>> -> DataSourceResult<'TDTO>
      
      override this.AllFull(take, skip, sort, filter, whereFunc) = 
          let queryResult = this.All(whereFunc).OrderBy(fun t -> t.ID).ToDataSourceResult(take, skip, sort, filter)
          let result = DataSourceResult<'TDTO>()
  