protected override Expression VisitQuerySourceReferenceExpression(QuerySourceReferenceExpression expression) { var qs = expression.ReferencedQuerySource; if (Query.CanQueryInMemory) { if (ProcessedSources.Contains(qs)) { return(expression); } ProcessedSources.Add(qs); if (Query.ParentQuery.MainFrom.Equals(qs)) { return(expression); } } if (typeof(IOracleReader).IsAssignableFrom(qs.ItemType)) { //TODO: expand query Query.AddSelectPart(qs, "\"{0}\"".With(qs.ItemName), qs.ItemName, qs.ItemType, null); } else if (qs.ItemType.AsValue()) { Query.AddSelectPart(qs, "VALUE(\"{0}\") AS \"{0}\"".With(qs.ItemName), qs.ItemName, qs.ItemType, null); } else { Query.AddSelectPart(qs, "\"{0}\"".With(qs.ItemName), qs.ItemName, qs.ItemType, null); } return(expression); }
protected override Expression VisitQuerySourceReferenceExpression(QuerySourceReferenceExpression expression) { var qs = expression.ReferencedQuerySource; if (Query.CanQueryInMemory) { if (ProcessedSources.Contains(qs)) { return(expression); } ProcessedSources.Add(qs); if (Query.ParentQuery.MainFrom.Equals(qs)) { return(expression); } } Query.AddSelectPart(qs, "\"{0}\"".With(qs.ItemName), qs.ItemName, qs.ItemType, null); return(expression); }