50 만 개가 넘는 레코드가 포함 된 테이블이 있습니다. 각 레코드에는 약 60 개의 필드가 있지만 그 중 세 필드 만 변경합니다.Entity Framework 4 SaveChanges의 메모리 부족
계산 및 조회를 기반으로 각 항목을 약간 수정합니다.
확실히 각 엔티티를 차례로 업데이트 할 수 없으며 그 다음으로는 SaveChanges
으로 업데이트하는 데 너무 오래 걸릴 수 있습니다.
전체 프로세스가 끝나면 Context
에서 SaveChanges
이라고 부릅니다. 나는 내가 DataRepository 패턴을 사용하고 SaveChanges
를 적용 할 때
이
는 메모리 부족 오류를 일으키는 원인이된다.//Update code
DataRepository<ExportOrderSKUData> repoExportOrders = new DataRepository<ExportOrderSKUData>();
foreach (ExportOrderSKUData grpDCItem in repoExportOrders.all())
{
..make changes to enity..
}
repoExportOrders.SaveChanges();
//Data repository snip
public DataRepository()
{
_context = new tomEntities();
_objectSet = _context.CreateObjectSet<T>();
}
public List<T> All()
{
return _objectSet.ToList<T>();
}
public void SaveChanges()
{
_context.SaveChanges();
}
이 인스턴스에서 무엇을 찾고 있습니까?
당신은 "분명히 각 엔티티를 차례로 업데이트 할 수 없으며 SaveChanges를 업데이트 할 수 없다"고 말했습니다. 임의의 레코드 수 (아마도 1024 또는 4096)에 대해 SaveChanges()를 호출 할 수 있습니까? –
다음 게시물을 보았습니까 [http://stackoverflow.com/questions/5940225/fastest-way-of-inserting-in-entity-framework/5942176#5942176](http://stackoverflow.com/). 질문/5940225/가장 빠른 방법으로 엔터티 프레임 워크에 삽입/5942176 # 5942176)? –
@David 그래, 그 시도, 그리고 확인을 작동하는 것,하지만이 최고의 * 기술 * 솔루션을 모르겠어요. 무슨 뜻인지 알 겠어? – griegs