這個問題是關係到a previous question of mine如何在使用IEnumerable <T>和Linq-To-Sql時防止內存溢出?
這是我當前的代碼
IEnumerable<Shape> Get()
{
while(//get implementation
yield return new Shape(//...
}
void Insert()
{
var actual = Get();
using (var db = new DataClassesDataContext())
{
db.Shapes.InsertAllOnSubmit(actual);
db.SubmitChanges();
}
}
我得到一個內存溢出,因爲IEnumerable的太大。我如何防止它?
我如何獲得5個組中的所有元素? – 2009-06-23 19:03:46
我瞭解到InsertBatchOnSubmit將是一個InsertAllOnSubmit,其元素較少 – 2009-06-23 19:08:39
Earwicker的鏈接有一個很好的例子。不過,我不確定這會對你有幫助,因爲你正在執行延期執行。您可能必須在循環外有一個List和batchSize = 5。從你的枚舉器添加項目,一旦計數達到batchSize,插入,然後清除以前的批處理。那是你問的嗎? –
2009-06-23 19:17:54