У меня есть простое приложение, которое получает данные из sqlite, используя ядро Entity Framework, и, конечно, с помощью нумерации страниц, потому что данных много.Теперь мне было интересно, есть ли простой способ экспортировать его в CSV.Я мог бы использовать тот же метод, что и для разбивки на страницы (если я буду выгружать все данные в память, я получу исключение из памяти), получить часть данных на страницу и добавить ее в CSV, и я знаю, что есть способ экспортировать данные напрямуюиз sqlite, используя:
>sqlite3 c:/sqlite/chinook.db
sqlite> .headers on
sqlite> .mode csv
sqlite> .output data.csv
Мой метод инфраструктуры Entity выглядит следующим образом:
public IEnumerable<Event> PaginationOrderedGet(int currentPage, int pageSize)
{
using (var ctx = new DataContext())
{
//Add something to export to csv
IQueryable<Event> query = ctx.Events.Where(e => e.CorrectEntry && !e.DuplicatedEntry);
IQueryable<Event> paginationQuery = query.OrderBy(orderBy).Skip((currentPage - 1) * pageSize).Take(pageSize);
return paginationQuery.AsNoTracking().ToList();
}
}
Есть ли способ объединить его, чтобы я мог просто отправить этот запрос напрямую сделать DB для экспорта в CSV.