using System;
using AIMSDAL;
using AIMSModel;
using System.Collections;
using System.Collections.Generic;
using System.Data;
namespace AIMSBLL
{
    public partial class BKnowledgeBase
    {
        #region 插入实体操作部份
        /// 
        /// 插入实体
        /// 
        /// 实体类对象
        /// 标识列值或影响的记录行数
        public static int Insert(KnowledgeBase knowledgeBase)
        {
            return DKnowledgeBase.Insert(knowledgeBase);
        }
        #endregion
        #region 删除实体操作
        /// 
        /// 删除实体
        /// 
        /// 实体类对象
        /// 影响的记录行数
        public static int Delete(KnowledgeBase knowledgeBase)
        {
            return DKnowledgeBase.Delete(knowledgeBase);
        }
        /// 
        /// 根据对象查询语句删除
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        public static int Delete(string oql, ParameterList parameters)
        {
            return DKnowledgeBase.Delete(oql, parameters);
        }
        #endregion
        #region 更新实体操作
        /// 
        /// 更新实体
        /// 
        /// 实体类对象
        /// 影响的记录行数
        public static int Update(KnowledgeBase knowledgeBase)
        {
            return DKnowledgeBase.Update(knowledgeBase);
        }
        /// 
        /// 根据对象查询语句更新实体
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        public static int Update(string oql, ParameterList parameters)
        {
            return DKnowledgeBase.Update(oql, parameters);
        }
        #endregion
        #region 查询实体集合
        /// 
        /// \查询实体集合
        /// 
        /// 实体类对象集合
        public static List Select()
        {
            return DKnowledgeBase.Select();
        }
        /// 
        /// 递归查询实体集合
        /// 
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        public static List Select(RecursiveType recursiveType, int recursiveDepth)
        {
            return DKnowledgeBase.Select(recursiveType, recursiveDepth);
        }
        /// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 实体类对象集合
        public static List Select(string oql, ParameterList parameters)
        {
            return DKnowledgeBase.Select(oql, parameters);
        }
        /// 
        /// 根据对象查询语句递归查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        public static List Select(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return DKnowledgeBase.Select(oql, parameters, recursiveType, recursiveDepth);
        }
        #endregion
        #region 查询单个实体
        /// 
        /// 更据对象查询语句查询单个实体
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 实体对象
        public static KnowledgeBase SelectSingle(string oql, ParameterList parameters)
        {
            return DKnowledgeBase.SelectSingle(oql, parameters);
        }
        /// 
        /// 更据对象查询语句递归查询单个实体
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体对象
        public static KnowledgeBase SelectSingle(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return DKnowledgeBase.SelectSingle(oql, parameters, recursiveType, recursiveDepth);
        }
        /// 
        /// 按主键字段查询特定实体
        /// 
        /// 主键值
        /// 实体类对象
        public static KnowledgeBase SelectSingle(int? id)
        {
            return DKnowledgeBase.SelectSingle(id);
        }
        /// 
        /// 更据主键递归查询单个实体
        /// 
        /// 递归类型
        /// 递归深度
        /// 实体对象
        public static KnowledgeBase SelectSingle(int? id, RecursiveType recursiveType, int recursiveDepth)
        {
            return DKnowledgeBase.SelectSingle(id, recursiveType, recursiveDepth);
        }
        #endregion
        public static DataTable datatable()
        {
            return DKnowledgeBase.datatable();
        }
        /// 
        /// \查询所有实体集合
        /// 
        /// 实体类对象集合
        public static List SelectAll(int? ParentId, string name)
        {
            List kbsall = BKnowledgeBase.Select(" ParentId=@ParentId and nanme like '%" + name + "%'", new ParameterList("@ParentId", ParentId));
            for (int i = 0; i < kbsall.Count; i++)
            {
                kbsall[i].SubItem = SelectAll(kbsall[i].Id, "");
            }
            return kbsall;
        }
    }
}