        IQueryable<TEntity> GetIQueryable();
        void SetDbContext(IDbContext dbContext);
        IQueryable<TEntity> GetList(Expression<Func<TEntity, bool>> expression = null, bool noTracking = false);
        TEntity Get(TPrimaryKey id, bool noTracking = false);
     
        TEntity SelectFirse(Expression<Func<TEntity, bool>> expression, bool noTracking = false);
        int Count(Expression<Func<TEntity, bool>> expression = null);
        long CountLong(Expression<Func<TEntity, bool>> expression = null);
        void Insert(TEntity entity);