이것은 내 첫 번째 게시물입니다. 저는 MVC .NET을 처음 사용합니다. 그리고 Entity Framework 기능 및 성능과 관련하여 몇 가지 질문이 있습니다. 인라인 질문 ...Entity Framework, DbSet <T>, Dispose() 성능 질문
질문 : DbSet은 데이터베이스 Student 테이블의 모든 레코드를 읽고 학생 (즉, 메모리)에 저장합니까? 아니면 단순히이 테이블에 연결을 유지하고 (레코드) 가져 오기는 SQL이 데이터베이스에 대해 실행될 때 완료됩니까?
private StudentContext db = new StudentContext();
Student astudent = db.Students.Find(id);
또는
var astudent = from s in db.Students
where s.StudentID == id)
select s;
질문 : 성능을 위해 더 나은이의 어떤 수있는 다음의 경우
? Find 메서드가 컬렉션에서 어떻게 작동하는지 잘 모르겠습니다.
질문 : 데이터베이스 연결은 언제 닫습니까? Dispose() 메서드 호출 중? 그렇다면 데이터베이스 컨텍스트 인스턴스가있는 클래스에 대해 Dispose() 메서드를 호출해야합니까? Using Block을 사용하기 위해 여기를 읽었습니다.
컨트롤러 클래스 get이 인스턴스화 된 것으로 추측하고 있습니다. 데이터베이스 액세스를 포함하여 작동하고, 연결된 뷰를 호출 한 다음 (컨트롤러) 범위를 벗어나 메모리에서 언로드됩니다. 아니면 가루 수집가. 하지만 Dispose()를 호출하여 명시 적으로 정리 작업을 수행하는 것이 가장 좋습니다.
내가 틀렸다면 정정 하겠지만'DbSet '은 LINQ to SQL이 아닌 Entity Framework를 사용한다는 것을 의미합니까? 그렇습니다. –
MarcinJuraszek
예, EF를 사용합니다. 죄송합니다. 새로운 이용 약관입니다. 나는 EF와 LINQ 진술을 말해야했다. –
그래, 그 질문에 맞게 편집했습니다. – MarcinJuraszek