public Expression BindParameter(ParameterExpression parameter, Dictionary <Expression, Expression> processedExpressions) { Expression result; if (processedExpressions.TryGetValue(this, out result)) { return(result); } var entityExpression = (EntityExpression)EntityExpression.BindParameter(parameter, processedExpressions); var rankExpression = (ColumnExpression)RankExpression.BindParameter(parameter, processedExpressions); return(new FullTextExpression(FullTextIndex, entityExpression, rankExpression, parameter)); }
public static EntityExpression Create(EntityFieldExpression entityFieldExpression, int offset) { var typeInfo = entityFieldExpression.PersistentType; var fields = new List <PersistentFieldExpression>(); var keyExpression = KeyExpression.Create(typeInfo, offset); fields.Add(keyExpression); foreach (var nestedField in typeInfo.Fields) { fields.Add(BuildNestedFieldExpression(nestedField, offset)); } var result = new EntityExpression(typeInfo, keyExpression, null, entityFieldExpression.DefaultIfEmpty) { Fields = fields }; if (entityFieldExpression.OuterParameter == null) { return(result); } return((EntityExpression)result.BindParameter(entityFieldExpression.OuterParameter, new Dictionary <Expression, Expression>())); }