/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public override Expression Process(Expression query) { query = base.Process(query); query = new CosmosValueConverterCompensatingExpressionVisitor(_sqlExpressionFactory).Visit(query); return(query); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public override Expression Process(Expression query) { query = base.Process(query); if (query is ShapedQueryExpression shapedQueryExpression && shapedQueryExpression.QueryExpression is SelectExpression selectExpression) { // Cosmos does not have nested select expression so this should be safe. selectExpression.ApplyProjection(); } query = new CosmosValueConverterCompensatingExpressionVisitor(_sqlExpressionFactory).Visit(query); return(query); }