Ich möchte also eine API haben, die einige Spalten aus einer großen Datenbank abruft und sie als CSV (Text) zurückgibt. Das Problem tritt auf, wenn ich versuche, sie zuerst zu bekommen und dann die CSV zu erstellen, weil der Speicher schnell voll ist (400 MB für 800.000 Zeilen). Dies ist der nächste Schritt, den ich unternommen habe, um es zum Laufen zu bringen, aber das Format ist nicht wirklich CSV. Es sind Zeilen, die durch Anführungszeichen getrennt sind, und es ist keine einzelne Zeichenfolge.
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;
}
}
MemoryOutOfBounds
kann durch die MemoryOutOfBounds
Ausnahme MemoryOutOfBounds
.