因此,我想要做的是有一个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;
}
}
发布于 2020-02-03 19:58:10
MemoryOutOfBounds
进行快速响应。您的接口执行/返回数据的时间应该不会太长。https://stackoverflow.com/questions/60038106
复制相似问题