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
}