public class BaseService<T> : IBaseService<T> where T : BaseEntity, new()    {
        BaseBLL<T> bll = null;
        public BaseService()
        {
            bll = (BaseBLL<T>)Assembly.Load("ParkDeviceUserBiz").
                CreateInstance(typeof(T).FullName.Replace("Entity", "BLL").Replace("Info", ""));
        }
        #region 对象添加、修改、查询接口
        ///<summary>
        /// 插入指定对象到数据库中
        ///</summary>
        ///<param name="obj">指定的对象</param>
        ///<returns>执行成功返回新增记录的自增长ID。</returns>
        public virtual bool Insert(T obj)
        {
            return bll.Insert(obj);
        }
        ///<summary>
        /// 插入指定对象到数据库中
        ///</summary>
        ///<param name="obj">指定的对象</param>
        ///<returns>执行成功返回新增记录的自增长ID。</returns>
        public virtual int Insert2(T obj)
        {
            return bll.Insert2(obj);
        }
        ///<summary>
        /// 更新对象属性到数据库中
        ///</summary>
        ///<param name="obj">指定的对象</param>
        ///<returns>执行成功返回<c>true</c>,否则为<c>false</c>。</returns>
        public virtual bool Update(T obj, string primaryKeyValue)
        {
            return bll.Update(obj, primaryKeyValue);
        }
        ///<summary>
        /// 查询数据库,检查是否存在指定ID的对象(用于字符型主键)
        ///</summary>
        ///<param name="key">对象的ID值</param>
        ///<returns>存在则返回指定的对象,否则返回Null</returns>
        public virtual T FindByID(string key)
        {
            return bll.FindByID(key);
        }
        ///<summary>
        /// 根据条件查询数据库,如果存在返回第一个对象
        ///</summary>
        ///<param name="condition">查询的条件</param>
        ///<returns>指定的对象</returns>
        public virtual T FindSingle(string condition)
        {
            return bll.FindSingle(condition);
        }
        ///<summary>
        /// 查找记录表中最旧的一条记录
        ///</summary>
        ///<returns></returns>
        public T FindFirst()
        {
            return bll.FindFirst();
        }
        ///<summary>
        /// 查找记录表中最新的一条记录
        ///</summary>
        ///<returns></returns>
        public T FindLast()
        {
            return bll.FindLast();
        }
        ///<summary>
        /// 获取表的所有记录数量
        ///</summary>
        ///<returns></returns>
        public int GetRecordCount2(string condition)
        {
            return bll.GetRecordCount(condition);
        }
        ///<summary>
        /// 获取表的所有记录数量
        ///</summary>
        ///<returns></returns>
        public int GetRecordCount()
        {
            return bll.GetRecordCount();
        }
        ///<summary>
        /// 根据condition条件,判断是否存在记录
        ///</summary>
        ///<param name="condition">查询的条件</param>
        ///<returns>如果存在返回True,否则False</returns>
        public bool IsExistRecord(string condition)
        {
            return bll.IsExistRecord(condition);
        }
        ///<summary>
        /// 查询数据库,检查是否存在指定键值的对象
        ///</summary>
        ///<param name="fieldName">指定的属性名</param>
        ///<param name="key">指定的值</param>
        ///<returns>存在则返回<c>true</c>,否则为<c>false</c>。</returns>
        public virtual bool IsExistKey(string fieldName, object key)
        {
            return bll.IsExistKey(fieldName, key);
        }
        ///<summary>
        /// 根据指定对象的ID,从数据库中删除指定对象(用于整型主键)
        ///</summary>
        ///<param name="key">指定对象的ID</param>
        ///<returns>执行成功返回<c>true</c>,否则为<c>false</c>。</returns>
        public virtual bool Delete(string key)
        {
            return bll.Delete(key);
        }
        ///<summary>
        /// 根据指定条件,从数据库中删除指定对象
        ///</summary>
        ///<param name="condition">删除记录的条件语句</param>
        ///<returns>执行成功返回<c>true</c>,否则为<c>false</c>。</returns>
        public virtual bool DeleteByCondition(string condition)
        {
            return bll.DeleteByCondition(condition);
        }
        #endregion
        #region 返回集合的接口
        ///<summary>
        /// 根据ID字符串(逗号分隔)获取对象列表
        ///</summary>
        ///<param name="idString">ID字符串(逗号分隔)</param>
        ///<returns>符合条件的对象列表</returns>
        public virtual List<T> FindByIDs(string idString)
        {
            return bll.FindByIDs(idString);
        }
        ///<summary>
        /// 根据条件查询数据库,并返回对象集合
        ///</summary>
        ///<param name="condition">查询的条件</param>
        ///<returns>指定对象的集合</returns>
        public virtual List<T> Find(string condition)
        {
            return bll.Find(condition);
        }
        ///<summary>
        /// 根据条件查询数据库,并返回对象集合(用于分页数据显示)
        ///</summary>
        ///<param name="condition">查询的条件</param>
        ///<param name="info">分页实体</param>
        ///<returns>指定对象的集合</returns>
        public virtual List<T> FindWithPager(string condition, PagerInfo info)
        {
            return bll.Find(condition, info);
        }
        ///<summary>
        /// 返回数据库所有的对象集合
        ///</summary>
        ///<returns>指定对象的集合</returns>
        public virtual List<T> GetAll()
        {
            return bll.GetAll();
        }
        ///<summary>
        /// 返回数据库所有的对象集合(用于分页数据显示)
        ///</summary>
        ///<param name="info">分页实体信息</param>
        ///<returns>指定对象的集合</returns>
        public virtual List<T> GetAllWithPager(PagerInfo info)
        {
            return bll.GetAll(info);
        }
        public virtual DataSet GetAllToDataSet(PagerInfo info)
        {
            return bll.GetAllToDataSet(info);
        }
        public DataTable GetAllToDataTable()
        {
            return bll.GetAllToDataTable();
        }
        public DataTable FindToDataTable(string condition)
        {
            return bll.FindToDataTable(condition);
        }
        #endregion
    }