Итак, я хочу получить API, который получает пару столбцов из большой базы данных и возвращает их в виде CSV (текст). Проблема возникает, если я пытаюсь сначала получить их, а затем собрать CSV, потому что память быстро заполняется (400 МБ для 800k строк). Это самое близкое, что я получил, чтобы заставить его работать, но формат на самом деле не CSV, это строки, разделенные кавычками, и это не единственная строка.
public IEnumerable<string> getCSV()
{
var names = typeof(AddressBook).GetProperties()
.Select(property => property.Name)
.ToArray();
yield return string.Join(",", names);
foreach( string name in names)
var query = context.AddressBook.Select(x => string.Join(",", x.Name, x.Surname, x.BirthDate)).AsNoTracking();
foreach (string row in query)
{
yield return row;
}
}