public void TableQueryableProjection() { OperationContext opContext = new OperationContext(); var baseQuery = currentTable.CreateQuery <POCOEntity>().WithContext(opContext); var pocoRes = (from ent in baseQuery select new ProjectedPOCO() { PartitionKey = ent.PartitionKey, RowKey = ent.RowKey, Timestamp = ent.Timestamp, a = ent.a, c = ent.c }); int count = 0; foreach (ProjectedPOCO ent in pocoRes) { Assert.IsNotNull(ent.PartitionKey); Assert.IsNotNull(ent.RowKey); Assert.IsNotNull(ent.Timestamp); Assert.AreEqual(ent.a, "a"); Assert.IsNull(ent.b); Assert.AreEqual(ent.c, "c"); Assert.IsNull(ent.d); count++; } // Project a single property via Select var stringRes = (from ent in baseQuery select ent.b).ToList(); Assert.AreEqual(stringRes.Count, count); // TableQuery.Project no resolver IQueryable <POCOEntity> projectionResult = (from ent in baseQuery select TableQuery.Project(ent, "a", "b")); count = 0; foreach (POCOEntity ent in projectionResult) { Assert.IsNotNull(ent.PartitionKey); Assert.IsNotNull(ent.RowKey); Assert.IsNotNull(ent.Timestamp); Assert.AreEqual(ent.a, "a"); Assert.AreEqual(ent.b, "b"); Assert.IsNull(ent.c); Assert.IsNull(ent.test); count++; } Assert.AreEqual(stringRes.Count, count); // TableQuery.Project no resolver IQueryable <string> resolverRes = (from ent in baseQuery select TableQuery.Project(ent, "a", "b")).Resolve((pk, rk, ts, props, etag) => props["a"].StringValue); count = 0; foreach (string s in resolverRes) { Assert.AreEqual(s, "a"); count++; } Assert.AreEqual(stringRes.Count, count); }