Esempio n. 1
0
        /// <summary>
        /// 生成主键条件
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="pkValues"></param>
        /// <returns></returns>
        internal static WhereClip GetPrimaryKeyWhere <TEntity>(Array pkValues)//params object[] pkValues  2015-08-20
            where TEntity : Entity
        {
            WhereClip where = new WhereClip();
            Field[] keyfields = EntityCache.GetPrimaryKeyFields <TEntity>();

            if (keyfields == null)
            {
                return(where);
            }

            Check.Require(keyfields.Length == pkValues.Length, "主键列与主键值无法对应!");

            int index = keyfields.Length;

            for (int i = 0; i < index; i++)
            {
                where = where.And(new WhereClip(keyfields[i], pkValues.GetValue(i), QueryOperator.Equal));
                //2015-08-20注释
                //where = where.And(new WhereClip(keyfields[i], pkValues[i], QueryOperator.Equal));
                //where = where.And(keyfields[i].In(pkValues));//2015-06-09
            }
            return(where);
        }