123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- 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;
- /// <summary>
- /// 实体类型
- /// </summary>
- public Type EntityType
- {
- get { return entityType; }
- set { entityType = value; }
- }
- private SqlEnum _sqltype;
- /// <summary>
- /// SQL语句类型
- /// </summary>
- public SqlEnum SqlType
- {
- get { return _sqltype; }
- set { _sqltype = value; }
- }
- private EntityPersistType persistType;
- /// <summary>
- /// 操作类型
- /// </summary>
- public EntityPersistType PersistType
- {
- get { return persistType; }
- set { persistType = value; }
- }
- //private MakeShowFields _selectfield ;
- ///// <summary>
- ///// 显示的列
- ///// </summary>
- //public MakeShowFields SelectField
- //{
- // get { return _selectfield; }
- // set { _selectfield = value; }
- //}
- private string _showfield;
- /// <summary>
- /// 显示的列
- /// </summary>
- public string ShowField
- {
- get { return _showfield; }
- set { _showfield = value; }
- }
- private MetaData _md;
- /// <summary>
- /// 实体属性
- /// </summary>
- public MetaData Md
- {
- get { return _md; }
- set { _md = value; }
- }
-
- private FieldValueCollection fields;
- /// <summary>
- /// 实体属性集合
- /// </summary>
- public FieldValueCollection Fields
- {
- get { return fields; }
- set { fields = value; }
- }
- private Type _childObjects;//子对象集合
- /// <summary>
- /// 子对象类型
- /// </summary>
- public Type ChildObjects
- {
- get { return this._childObjects; }
- set { _childObjects = value; }
- }
- private QueryCommand _QueryComm;
- /// <summary>
- /// 实体属性集合
- /// </summary>
- public QueryCommand QueryComm
- {
- get { return _QueryComm; }
- set { _QueryComm = value; }
- }
- private string _Top;
- /// <summary>
- ///
- /// </summary>
- public string Top
- {
- get { return _Top; }
- set { _Top = value; }
- }
- private int pageNo = 0;
- /// <summary>
- /// 第几页
- /// </summary>
- public int PageNo
- {
- get { return pageNo; }
- set { pageNo = value; }
- }
- private int pageSize = 0;
- /// <summary>
- /// 每页显示的条数
- /// </summary>
- public int PageSize
- {
- get { return pageSize; }
- set { pageSize = value; }
- }
- private bool isPaging = false;
- private string _moduleName;
- /// <summary>
- /// 模块
- /// </summary>
- public string ModuleName
- {
- get { return _moduleName; }
- set { _moduleName = value; }
- }
- /// <summary>
- /// 拼接查询条件
- /// </summary>
- public IPredicate Predicate
- {
- get;
- set;
- }
- /// <summary>
- /// 排序
- /// </summary>
- public IList<ISort> Sort
- {
- get;
- set;
- }
- /// <summary>
- /// 是否分页
- /// </summary>
- public bool IsPaging
- {
- get { return isPaging; }
- set { isPaging = value; }
- }
- /// <summary>
- /// 拼接SQL字符串
- /// </summary>
- public static string DbParmChar { get; set; }
- /// <summary>
- /// 创建不同解析SQL语句
- /// </summary>
- /// <param name="databaseType">数据库类型</param>
- /// <returns></returns>
- 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;
- }
-
- /// <summary>
- /// 返回查询对象
- /// </summary>
- /// <returns></returns>
- public abstract QueryCommand GetQueryCommand();//映射到DataBaise文件夹中去找它对应的数据库连接方式{MSSqlQueryCommandBuilder.cs}
- }
- }
|