Hello, I am making an application for work that involves using an OData service.
I am using the RadDataServiceDataSource control in conjunction with the RadDataFilter to manage data from the OData service such that the user can get the information they need without actually having to know how to compose an OData query string (the data is presented in a RadGridView).
The problem I am running into occurs when there are few to no filters in the query string (which are provided via the RadDataFilter on the UI). I appear to be getting a timeout exception, the following is a relevant line from the response message from the service:
"Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."
I have confirmed that the server is indeed responding and I have tried increasing the timeout on both the service directly and also on the RadDataServiceDataSource object in the XAML. Unfortunately this seems to have no effect at all. Whether an exception gets thrown or the operation is successful the service spins for the same amount of time.
After a few hours on Google I found some folk who suggested that the following line that is added to the OData query string by default could be the culprit:
inlinecount=allpages
I cannot confirm whether or not this is true, but from what I understand this line adds an extra call to the database that grabs the count of how many rows will be returned when the query string is executed. The problem (in theory) is that even though I have set the PageSize property of the RadDataFilter to only be 1000 (to avoid things like timeout problems and overly large result sets) this first call to grab the count ignores that limiter. If this is indeed true then all I would need to do is change allPages to none in said line at the end of the OData query string.
I have looked at all of the properties of the service context, RadDataServiceDataSource, and RadDataFilterThe but nothing is sticking out as a way to accomplish this. I have also tried hooking into the loading event of the RadDataServiceDataSource and editing the query string before it is sent but I cannot find a way to change the request URI (as it is read only at this point).
Any advice on how to remedy this situation?
Note: Code/XAML/Full Exception Details were omitted for neatness sake. If you would like to see them I can add those.
Thank you in advance for any help on this matter
I am using the RadDataServiceDataSource control in conjunction with the RadDataFilter to manage data from the OData service such that the user can get the information they need without actually having to know how to compose an OData query string (the data is presented in a RadGridView).
The problem I am running into occurs when there are few to no filters in the query string (which are provided via the RadDataFilter on the UI). I appear to be getting a timeout exception, the following is a relevant line from the response message from the service:
"Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."
I have confirmed that the server is indeed responding and I have tried increasing the timeout on both the service directly and also on the RadDataServiceDataSource object in the XAML. Unfortunately this seems to have no effect at all. Whether an exception gets thrown or the operation is successful the service spins for the same amount of time.
After a few hours on Google I found some folk who suggested that the following line that is added to the OData query string by default could be the culprit:
inlinecount=allpages
I cannot confirm whether or not this is true, but from what I understand this line adds an extra call to the database that grabs the count of how many rows will be returned when the query string is executed. The problem (in theory) is that even though I have set the PageSize property of the RadDataFilter to only be 1000 (to avoid things like timeout problems and overly large result sets) this first call to grab the count ignores that limiter. If this is indeed true then all I would need to do is change allPages to none in said line at the end of the OData query string.
I have looked at all of the properties of the service context, RadDataServiceDataSource, and RadDataFilterThe but nothing is sticking out as a way to accomplish this. I have also tried hooking into the loading event of the RadDataServiceDataSource and editing the query string before it is sent but I cannot find a way to change the request URI (as it is read only at this point).
Any advice on how to remedy this situation?
Note: Code/XAML/Full Exception Details were omitted for neatness sake. If you would like to see them I can add those.
Thank you in advance for any help on this matter