Exemplo n.º 1
0
 /// <summary>
 /// 使用实体对象初始化构造函数
 /// </summary>
 /// <param name="e"></param>
 public DMEDb_OQL1(DMEDb_EntityBase e,DMEDb_OQL q)
 {
     this.CurrEntity = e;
     this.CurrOQL = q;
     this.CurrEntity.PropertyGetting += new EventHandler<PropertyGettingEventArgs>(CurrEntity_PropertyGetting);
 }
Exemplo n.º 2
0
 public DMEDb_JoinEntity(DMEDb_OQL mainOql)
 {
     this._mainOql = mainOql;
 }
Exemplo n.º 3
0
 /// <summary>
 /// 以另外一个OQL条件作为Not In的子查询
 /// </summary>
 /// <seealso cref="http://www.cnblogs.com/bluedoctor/archive/2011/02/24/1963606.html"/>
 /// <param name="field">属性字段</param>
 /// <param name="q">OQL表达式</param>
 /// <returns></returns>
 public DMEDb_OQL2 NotIn(object field, DMEDb_OQL q)
 {
     return IN(field, q, false );
 }
Exemplo n.º 4
0
        private DMEDb_OQL2 IN(object field, DMEDb_OQL q,bool isIn)
        {
            string inString = isIn ? " IN " : " NOT IN ";
            if (q.sql_fields.IndexOf(',') > 0)
                throw new Exception("OQL 语法错误,包含在In查询中的子查询只能使用1个实体属性,请修改子查询的Select参数。");
            string childSql = q.ToString().Replace("@P","@INP");
            _conditionString += " AND " + currFieldName + inString + "  (\r\n" + childSql + ")";

            foreach (string key in q.Parameters.Keys)
                this.paras.Add("IN"+key , q.Parameters[key]);

            return this;
        }
Exemplo n.º 5
0
        /// <summary>
        /// 以另外一个OQL条件作为In的子查询
        /// </summary>
        /// <seealso cref="http://www.cnblogs.com/bluedoctor/archive/2011/02/24/1963606.html"/>
        /// <param name="field">属性字段</param>
        /// <param name="q">OQL表达式</param>
        /// <returns></returns>
        public DMEDb_OQL2 IN(object field, DMEDb_OQL q)
        {
            //if (q.sql_fields.IndexOf(',') > 0)
            //    throw new Exception("OQL 语法错误,包含在In查询中的子查询只能使用1个实体属性,请修改子查询的Select参数。");
            //_conditionString += " AND " + currFieldName + " IN (\r\n" + q.ToString () + ")";

            //foreach (string key in q.Parameters.Keys)
            //    this.paras.Add(key, q.Parameters[key]);

            //return this;
            return IN(field, q, true);
        }