diff --git a/src/Core/Models/GraphQLFilterParsers.cs b/src/Core/Models/GraphQLFilterParsers.cs
index 153def832f..90deb884b3 100644
--- a/src/Core/Models/GraphQLFilterParsers.cs
+++ b/src/Core/Models/GraphQLFilterParsers.cs
@@ -227,6 +227,7 @@ public Predicate Parse(
cosmosQueryStructure.DatabaseObject.Name = sourceName;
cosmosQueryStructure.SourceAlias = sourceAlias;
+ cosmosQueryStructure.EntityName = entityName;
}
}
}
diff --git a/src/Service.Tests/CosmosTests/QueryFilterTests.cs b/src/Service.Tests/CosmosTests/QueryFilterTests.cs
index 187b447973..636988331c 100644
--- a/src/Service.Tests/CosmosTests/QueryFilterTests.cs
+++ b/src/Service.Tests/CosmosTests/QueryFilterTests.cs
@@ -899,6 +899,31 @@ public async Task TestFilterWithEntityNameAlias()
await ExecuteAndValidateResult(_graphQLQueryName, gqlQuery, dbQuery);
}
+ ///
+ /// Test filters on two different nested objects simultaneously
+ ///
+ [TestMethod]
+ public async Task TestFilterOnTwoDifferentNestedObjects()
+ {
+ string gqlQuery = @"{
+ planets(first: 10, " + QueryBuilder.FILTER_FIELD_NAME + @" : {
+ character: { name: { eq: ""planet character"" } },
+ earth: { type: { eq: ""earth4"" } }
+ })
+ {
+ items {
+ id
+ name
+ }
+ }
+ }";
+
+ string dbQuery = "SELECT c.id, c.name FROM c " +
+ "WHERE c.character.name = \"planet character\" AND c.earth.type = \"earth4\"";
+
+ await ExecuteAndValidateResult(_graphQLQueryName, gqlQuery, dbQuery);
+ }
+
///
/// For "item-level-permission-role" role, DB policies are defined. This test confirms that all the DB policies are considered.
/// For the reference, Below conditions are applied for an Entity in Db Config file.