public static void Fill(EntityExpression entityExpression, int offset) { using (new RemapScope()) { entityExpression.Remap(offset, new Dictionary <Expression, Expression>()); } var typeInfo = entityExpression.PersistentType; foreach (var nestedField in typeInfo.Fields.Except(entityExpression.Fields.OfType <FieldExpression>().Select(field => field.Field))) { var nestedFieldExpression = BuildNestedFieldExpression(nestedField, offset); var fieldExpression = nestedFieldExpression as FieldExpression; if (fieldExpression != null) { fieldExpression.Owner = entityExpression; } entityExpression.fields.Add(nestedFieldExpression); } }
public Expression Remap(int[] map, Dictionary <Expression, Expression> processedExpressions) { if (!CanRemap) { return(this); } Expression result; if (processedExpressions.TryGetValue(this, out result)) { return(result); } var remappedEntityExpression = (EntityExpression)EntityExpression.Remap(map, processedExpressions); var remappedRankExpression = (ColumnExpression)RankExpression.Remap(map, processedExpressions); return(new FullTextExpression(FullTextIndex, remappedEntityExpression, remappedRankExpression, OuterParameter)); }