Я использую Entity Framework для запроса базы данных и я использую следующие:IQueryable.Skip И IQueryable.Take Верхняя граница
context
.MyTable
.Where(...)
.Where(...)
.OrderBy(...)
.Skip((int)numberOfItemsToSkip)
.Take((int)numberOfItemsToTake)
.ToArray();
Мой вопрос о той части Skip((int)numberOfItemsToSkip)
. Он принимает только аргумент Int32
, который имеет верхнюю границу Int32.MaxValue
. Теперь, что, если MyTable
содержит более Int32.MaxValue
записей. Причина, по которой я говорю, заключается в том, что база данных у меня ОГРОМНАЯ и значительно растет, и именно поэтому я столкнулся с тем, что Int32.MaxValue
может быть недостаточно. Моя база данных размещена на SQL Server.
Итак, есть ли какой-либо встроенный способ передать аргумент Int64
? Я могу идти вперед и делать что-то вручную, но мой вопрос о чем-то изнутри Entity Framework.
Итак, у вас есть набор результатов нумерации в миллиарды строк, и вы считаете, что это разумный случай использования людей для подкачки через все эти строки? Как правило, ожидается, что другая фильтрация уменьшит количество результатов до «человеческих» уровней, так что пейджинг имеет смысл или вы не будете использовать стиль поискового вызова доступа к данным. –