Entity Framework를 사용하는 MVC 응용 프로그램이 있습니다. 응용 프로그램의 일부에는 데이터베이스에 저장할 수있는 보고서 작성이 포함됩니다. 또한 데이터베이스에서 보고서를로드하고 수정 한 다음 변경 사항을 다시 데이터베이스에 저장하는 작업도 포함됩니다.업데이트시 데이터베이스에서 엔터티를 가져 오도록 Entity Framework 가져 오기
보고서를 저장하면 변경 내용이 데이터베이스에 유지되지만 보고서를 다시로드해도 변경 내용이없는 것입니다. 분명히 Entity Framework는 데이터베이스에서 보고서를 업데이트하지 않습니다. Entity Framework에서 보고서가 오래되었거나 데이터베이스에서 가장 최신 버전의 보고서를 가져와야하는시기를 인식하게하는 방법이 궁금합니다.
1) 변경 보고서 구성 페이지의 보고서에 만들어진, 그리고이 버튼을 클릭 "저장": 프로세스 흐름이 어떻게 작동하는지
는 여기에 있습니다.
2) 보고서 데이터는 AJAX 호출을 통해 ReportConfigController로 전송됩니다. 변경 사항은 보고서 엔티티에 기록됩니다.
3) _projectService.UpdateProjectForReport (project)에 대한 호출이 보고서가 속한 프로젝트에서 전달됩니다 (예 : project.Reports가 업데이트 된 보고서를 포함하는 ICollection 임).
4) UpdateProjectForReport()는 다음과 같습니다
public void UpdateProjectForReport(Project project)
{
_context.SaveChanges();
}
5) 데이터베이스에서 찾고, 나는 변화가 지속되어 있는지 확인합니다.
6) 보고서 구성 페이지에서 나와 다른 페이지로 이동합니다.
7) 방금 업데이트 한 보고서를 드롭 다운 메뉴에서 선택합니다. 이것은 AJAX 호출을 트리거하여 보고서를로드합니다.
8) ReportConfigController는 프로젝트 ID와 보고서 ID를 전달하여 보고서를 가져 오기 위해 API 호출을합니다. 다음과 같이
9) API는 보고서를 가져옵니다
_project = _projectService.GetProject (projectId); 보고서 report = _project.Report.Where (r => r.ReportId == reportId) .FirstOrDefault();
... _project.Report는 ICollection입니다. .
공공 프로젝트 GetProject (INT projectId)
{ 반환 _context.Projects.Include ("보고서") FirstOrDefault (P => P :
10) _projectService.GetProject()는 다음과 같습니다 .ProjectId == projectId);
11) 보고서가 json으로 변환되어 반환됩니다.
9 단계와 10 단계에서 Entity Framework가 프로젝트의 최신 보고서를 받아야한다는 것을 인식해야합니다. 그렇게하지 않습니다.
아무도 도와 줄 수 있습니까?
내 대답이 수정되었습니다. 그것은 당신의 질문을 해결합니까? – Massimo