コード例 #1
0
        /// <summary>
        /// Converts the query expression.
        /// </summary>
        /// <returns>The query expression.</returns>
        protected override QueryExpression ConvertQueryExpression()
        {
            //QueryExpression expression;
            //if ((predicate == QueryPredicate.Eq || predicate == QueryPredicate.NotEq) && Object.Equals (rightField, null)) {
            //	expression = new NullQueryExpression (leftField, predicate == QueryPredicate.Eq);
            //}
            //else {
            //	expression = new DataFieldQueryExpression (leftField, predicate, rightField, false);
            //}
            QueryExpression expression = new LightBinaryQueryExpression(leftField.TableMapping, QueryPredicate.Eq, leftField, rightField);

            return(expression);
        }
コード例 #2
0
        public object ToProperty(DataContext context, object source, bool exceptOwner)
        {
            InitialRelateMapping();
            QueryExpression expression = null;

            for (var i = 0; i < masterFieldMappings.Length; i++)
            {
                var             info          = relateInfos[i];
                var             field         = masterFieldMappings[i];
                QueryExpression keyExpression = new LightBinaryQueryExpression(relateEntityMapping, QueryPredicate.Eq, info, field.Handler.Get(source));
                expression = QueryExpression.And(expression, keyExpression);
            }

            object target = null;

            if (defaultConstructorInfo != null)
            {
                object[] args = { context, source, expression, exceptOwner ? fieldPaths : null };
                target = defaultConstructorInfo.Invoke(args);
            }
            return(target);
        }