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