Exemple #1
0
        internal DbExpression AsCqt(DbExpression row, IEnumerable <Constant> constants, MemberPath outputMember, bool skipIsNotNull)
        {
            DbExpression cqt = null;

            AsCql(
                // trueLiteral action
                () => cqt = DbExpressionBuilder.True,
                // varIsNotNull action
                () => cqt = outputMember.AsCqt(row).IsNull().Not(),
                // varNotEqualsTo action
                (constant) =>
            {
                DbExpression notEqualsExpr = outputMember.AsCqt(row).NotEqual(constant.AsCqt(row, outputMember));
                if (cqt != null)
                {
                    cqt = cqt.And(notEqualsExpr);
                }
                else
                {
                    cqt = notEqualsExpr;
                }
            },
                constants, outputMember, skipIsNotNull);

            return(cqt);
        }
        internal override DbExpression AsCqt(DbExpression row, MemberPath outputMember)
        {
            var cqt = m_memberPath.AsCqt(row);

            TypeUsage outputMemberTypeUsage;

            if (NeedToCastCqlValue(outputMember, out outputMemberTypeUsage))
            {
                cqt = cqt.CastTo(outputMemberTypeUsage);
            }

            return(cqt);
        }
Exemple #3
0
        internal DbExpression AsCqt(
            DbExpression row,
            IEnumerable <Constant> constants,
            MemberPath outputMember,
            bool skipIsNotNull)
        {
            DbExpression cqt = (DbExpression)null;

            this.AsCql((Action)(() => cqt = (DbExpression)DbExpressionBuilder.True), (Action)(() => cqt = (DbExpression)outputMember.AsCqt(row).IsNull().Not()), (Action <Constant>)(constant =>
            {
                DbExpression right = (DbExpression)outputMember.AsCqt(row).NotEqual(constant.AsCqt(row, outputMember));
                if (cqt != null)
                {
                    cqt = (DbExpression)cqt.And(right);
                }
                else
                {
                    cqt = right;
                }
            }), constants, outputMember, skipIsNotNull);
            return(cqt);
        }