this is because the default is using INTERSECTS instead of CONTAINS
private void QueryTaskService(Selection sel, ESRI.ArcGIS.Client.Geometry.Geometry geometry)
{
string serviceURL;
if (GravityMain.Target == PipeQueryBuilder.AddIns.MyDatabaseService.Table.SSGRAVITYMAIN_MV)
serviceURL = "http://mkgistempd01/ArcGIS/rest/services/RIVER/Sanitary_map/MapServer/62";
else if (GravityMain.Target == PipeQueryBuilder.AddIns.MyDatabaseService.Table.SSPRESSURIZEDMAIN_MV)
serviceURL = "http://mkgistempd01/ArcGIS/rest/services/RIVER/Sanitary_map/MapServer/64";
else if (GravityMain.Target == PipeQueryBuilder.AddIns.MyDatabaseService.Table.SWGRAVITYMAIN_MV)
serviceURL = "http://mkgistempd01/ArcGIS/rest/services/RIVER/Storm_map/MapServer/62";
else
serviceURL = "http://mkgistempd01/ArcGIS/rest/services/RIVER/Storm_map/MapServer/63";
QueryTask queryTask = new QueryTask(serviceURL);
queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted;
queryTask.Failed += QueryTask_Failed;
Query query = new ESRI.ArcGIS.Client.Tasks.Query();
query.OutFields.Add("*");
query.Geometry = geometry;
query.SpatialRelationship = SpatialRelationship.esriSpatialRelIntersects;
query.Where = form.constructWHERECLAUSE(sel);
// Return geometry with result features
query.ReturnGeometry = true;
query.OutSpatialReference = MapApplication.Current.Map.SpatialReference;
queryTask.ExecuteAsync(query, GravityMain._gMain.BoundaryGeometries[geometry]);
}