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; }