因此,我想做的是使用一個api,該api從大型數據庫中獲取幾列,然後將它們返回為CSV(文本)。如果我嘗試首先獲取它們,然後構建csv,則會出現問題,因為內存會很快填滿(800k行為400mb)。這是我所能使用的最接近的格式,但是格式不是真正的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;
}
}
MemoryOutOfBounds
異常。