private LegacyCommandTrees.DbNewInstanceExpression CreateNewCollectionInstance(DbNewInstanceExpression inputExpression) { Debug.Assert(inputExpression != null, "inputExpression != null"); Debug.Assert( inputExpression.ResultType.EdmType.BuiltInTypeKind == BuiltInTypeKind.CollectionType, "Collection type expected"); return(LegacyExpressionBuilder.NewCollection(inputExpression.Arguments.Select(a => a.Accept(this)))); }
public override LegacyCommandTrees.DbExpression Visit(DbCaseExpression expression) { Debug.Assert(expression != null, "expression != null"); return (LegacyExpressionBuilder.Case( expression.When.Select(e => e.Accept(this)), expression.Then.Select(e => e.Accept(this)), expression.Else.Accept(this))); }
public override LegacyCommandTrees.DbExpression Visit(DbCrossJoinExpression expression) { Debug.Assert(expression != null, "expression != null"); return (LegacyExpressionBuilder .CrossJoin( expression.Inputs.Select( binding => binding.Expression.Accept(this).BindAs(binding.VariableName)))); }
private LegacyCommandTrees.DbNewInstanceExpression CreateNewRowTypeInstance(DbNewInstanceExpression inputExpression) { Debug.Assert(inputExpression != null, "inputExpression != null"); Debug.Assert( inputExpression.ResultType.EdmType.BuiltInTypeKind == BuiltInTypeKind.RowType, "Row type expected"); var arguments = new KeyValuePair <string, LegacyCommandTrees.DbExpression> [inputExpression.Arguments.Count]; for (var argIdx = 0; argIdx < arguments.Length; argIdx++) { arguments[argIdx] = new KeyValuePair <string, LegacyCommandTrees.DbExpression>( ((RowType)inputExpression.ResultType.EdmType).Properties[argIdx].Name, inputExpression.Arguments[argIdx].Accept(this)); } return(LegacyExpressionBuilder.NewRow(arguments)); }