using System; using System.Collections.Generic; using System.Text; using Ant.Frame; using Ant.Data; using Ant.Descriptors; namespace Ant.ORM { public abstract class QueryCommandBuilder { private Type entityType; /// /// 实体类型 /// public Type EntityType { get { return entityType; } set { entityType = value; } } private SqlEnum _sqltype; /// /// SQL语句类型 /// public SqlEnum SqlType { get { return _sqltype; } set { _sqltype = value; } } private EntityPersistType persistType; /// /// 操作类型 /// public EntityPersistType PersistType { get { return persistType; } set { persistType = value; } } //private MakeShowFields _selectfield ; ///// ///// 显示的列 ///// //public MakeShowFields SelectField //{ // get { return _selectfield; } // set { _selectfield = value; } //} private string _showfield; /// /// 显示的列 /// public string ShowField { get { return _showfield; } set { _showfield = value; } } private MetaData _md; /// /// 实体属性 /// public MetaData Md { get { return _md; } set { _md = value; } } private FieldValueCollection fields; /// /// 实体属性集合 /// public FieldValueCollection Fields { get { return fields; } set { fields = value; } } private Type _childObjects;//子对象集合 /// /// 子对象类型 /// public Type ChildObjects { get { return this._childObjects; } set { _childObjects = value; } } private QueryCommand _QueryComm; /// /// 实体属性集合 /// public QueryCommand QueryComm { get { return _QueryComm; } set { _QueryComm = value; } } private string _Top; /// /// /// public string Top { get { return _Top; } set { _Top = value; } } private int pageNo = 0; /// /// 第几页 /// public int PageNo { get { return pageNo; } set { pageNo = value; } } private int pageSize = 0; /// /// 每页显示的条数 /// public int PageSize { get { return pageSize; } set { pageSize = value; } } private bool isPaging = false; private string _moduleName; /// /// 模块 /// public string ModuleName { get { return _moduleName; } set { _moduleName = value; } } /// /// 拼接查询条件 /// public IPredicate Predicate { get; set; } /// /// 排序 /// public IList Sort { get; set; } /// /// 是否分页 /// public bool IsPaging { get { return isPaging; } set { isPaging = value; } } /// /// 拼接SQL字符串 /// public static string DbParmChar { get; set; } /// /// 创建不同解析SQL语句 /// /// 数据库类型 /// public static QueryCommandBuilder Instance(DatabaseType databaseType) { QueryCommandBuilder qcb = null; switch (databaseType) { case DatabaseType.MSSQLServer: { DbParmChar = "@"; qcb = new MSSqlQueryCommandBuilder(); } break; case DatabaseType.OleDb: { DbParmChar = "@"; qcb = new OleDbQueryCommandBuilder(); } break; case DatabaseType.MySQL: { DbParmChar = "@"; qcb = new MySqlQueryCommandBuilder(); } break; case DatabaseType.Oracle: { DbParmChar = ":"; qcb = new OracleQueryCommandBuilder(); } break; case DatabaseType.SQLite: { DbParmChar = "@"; qcb = new SQLiteQueryCommandBuilder();//后期再扩展 } break; } return qcb; } /// /// 返回查询对象 /// /// public abstract QueryCommand GetQueryCommand();//映射到DataBaise文件夹中去找它对应的数据库连接方式{MSSqlQueryCommandBuilder.cs} } }