Разбиение на страницы огромных данных, возвращаемых веб-API.C#

Место общения программистов C#
Ответить
Anonymous
 Разбиение на страницы огромных данных, возвращаемых веб-API.

Сообщение Anonymous »

Мы создали WebAPI для запросов к базе данных Oracle. Запрос возвращает огромные результаты, поэтому иногда выдается исключение OutOfMemoryException.

Рекомендовалось использовать концепцию Paging. Я не понимаю, как клиентское приложение узнает, сколько раз нужно вызвать API, чтобы получить весь набор результатов. Также мне нужно создать отдельный класс для подкачки или я могу управлять им в своем контроллере API.

Кто-нибудь может помочь мне с этим, поскольку это мой первый веб-API. Мы не можем создавать для этого хранимые процедуры, поскольку у нас есть только доступ на чтение базы данных

public HttpResponseMessage Getdetails([FromUri] string[] id)
{
string connStr = ConfigurationManager.ConnectionStrings["ProDataConnection"].ConnectionString;
using (OracleConnection dbconn = new OracleConnection(connStr))
{
var inconditions = id.Distinct().ToArray();
var srtcon = string.Join(",", inconditions);
DataSet userDataset = new DataSet();
var strQuery = @"SELECT * from STCD_PRIO_CATEGORY where STPR_STUDY.STD_REF IN(" + srtcon + ")";
using (OracleCommand selectCommand = new OracleCommand(strQuery, dbconn))
{
using (OracleDataAdapter adapter = new OracleDataAdapter(selectCommand))
{
DataTable selectResults = new DataTable();
adapter.Fill(selectResults);
var returnObject = new { data = selectResults };
var response = Request.CreateResponse(HttpStatusCode.OK, returnObject, MediaTypeHeaderValue.Parse("application/json"));
ContentDispositionHeaderValue contentDisposition = null;

if (ContentDispositionHeaderValue.TryParse("inline; filename=ProvantisStudyData.json", out contentDisposition))
{
response.Content.Headers.ContentDisposition = contentDisposition;
}

return response;
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/387 ... he-web-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»