Tôi đang cố gắng tiết kiệm hàng trăm nghìn bản ghi bằng cách sử dụng khung Entity. Sau khi lưu vài trăm ngàn hồ sơ tôi nhận được lỗi sau:System.OutOfMemoryException sử dụng Khung thực thể?
: System.OutOfMemoryException
Mã của tôi
foreach (BibContent objbibcontents in lstBibContent)
{
db.BibContents.AddObject(objbibcontents);
c = c + 1;
if (c == 1000)
{
db.SaveChanges();
c = 0;
}
}
tôi nhận thấy sau khi tiết kiệm 1000 ghi db của tôi không được trọng khác 1.000 hồ sơ. nó đang thêm chúng vào dbcontext của tôi.
Tôi đang tạo một phiên bản mới sau 1000 bản ghi nhưng db của tôi vẫn có dữ liệu của đối tượng trước đó. Xem mã của tôi
foreach (var objbibcontents in lstBibContent)
{
vibrantEntities db1 = new vibrantEntities(szConStr);
lstBibCon.Add(objbibcontents);
// db.BibContents.AddObject(objbibcontents);
c = c + 1;
if (c == 1000)
{
foreach (BibContent bibobject in lstBibCon)
{
db1.BibContents.AddObject(bibobject);
}
lstBibCon.Clear();
db1.SaveChanges();
c = 0;
flag = 1;
}
}
tôi có thể xóa dbcontext của mình thay vì tạo lại không? –
Bạn sẽ phải đi và thiết lập từng đối tượng được thêm vào như tách ra. Tạo một thể hiện ngữ cảnh mới là cách tốt hơn nhiều. –