개체 서비스에서 연결 관리(Entity Framework)

기본적으로 개체 서비스는 데이터베이스로 연결을 관리합니다. 개체 서비스는 쿼리를 실행하거나 SaveChanges를 호출해야 하는 등, 필요한 경우에만 연결을 엽니다. 그런 다음 작업이 완료되면 연결을 닫습니다.

다음 메서드 중 하나를 호출하면 연결이 열립니다.

개체 서비스는 Connection 속성을 통해 EntityConnection을 노출합니다. 그러면 연결과 트랜잭션을 관리하거나 사용자 고유의 EntityConnection을 제공할 수 있습니다. 이 기능은 성능을 향상하거나 트랜잭션을 명시적으로 제어하기 위해 수명 짧은 개체 컨텍스트 내에서 연결을 열어둔 상태로 유지할 때 유용합니다. 엔터티 프레임워크에서 사용하는 것과 동일한 공급자 연결을 응용 프로그램의 다른 부분과 공유할 수 있습니다.

연결을 관리할 때 다음 사항을 고려해야 합니다.

  • 작업 시작 전에 연결이 열려 있지 않은 경우, 개체 컨텍스트가 연결을 엽니다. 작업 도중에 개체 컨텍스트가 연결을 여는 경우에는 작업 완료 시 항상 연결이 닫힙니다.

  • 수동으로 연결을 여는 경우 개체 컨텍스트가 연결을 닫지 않습니다. Close 또는 Dispose를 호출하면 연결이 닫힙니다.

  • 개체 컨텍스트가 연결을 만드는 경우 컨텍스트가 삭제되면 항상 연결이 삭제됩니다.

  • 장시간 실행 중인 개체 컨텍스트에서는 컨텍스트가 더 이상 필요 없을 때 삭제되는지 확인해야 합니다.

  • 개체 컨텍스트에서 사용하도록 EntityConnection을 제공하는 경우에는 삭제되는지 확인해야 합니다.

다음 예제에서는 연결을 명시적으로 여는 방법을 보여 줍니다.

' Explicitly open the connection.
advWorksContext.Connection.Open()
// Explicitly open the connection.    
advWorksContext.Connection.Open();

자세한 내용은 방법: 수동으로 개체 컨텍스트의 연결 열기(Entity Framework)를 참조하십시오.

장시간 실행 중인 개체 컨텍스트에서 수동으로 연결을 열 때는 컨텍스트가 더 이상 필요 없을 때 연결이 닫히도록 하기 위해 Dispose를 호출해야 합니다. EntityConnection에서 Close를 호출하여 연결을 명시적으로 닫을 수도 있습니다. 자세한 내용은 방법: 장기 실행 개체 컨텍스트의 연결 관리(Entity Framework)를 참조하십시오.

개체 서비스를 사용하여 EntityConnection을 만들고 이 연결을 개체 컨텍스트에 제공할 수도 있습니다. 이 경우, 연결을 수동으로 직접 열 수도 있고 필요 시 개체 컨텍스트에서 연결을 열도록 허용할 수도 있습니다. EntityConnection을 개체 컨텍스트에 제공한 경우에는 컨텍스트와 EntityConnection이 더 이상 필요 없을 때 이 두 가지가 모두 삭제되는지 확인해야 합니다. 다음 예제에서는 연결을 만들고 이를 개체 컨텍스트에 전달합니다.

' Create an EntityConnection.
Dim conn As New EntityConnection("name=AdventureWorksEntities")

' Create a long-running context with the connection.
Dim advWorksContext As New AdventureWorksEntities(conn)
// Create an EntityConnection.
EntityConnection conn =
    new EntityConnection("name=AdventureWorksEntities");

// Create a long-running context with the connection.
AdventureWorksEntities advWorksContext =
    new AdventureWorksEntities(conn);

자세한 내용은 방법: 개체 컨텍스트에서 EntityConnection 사용(Entity Framework)을 참조하십시오.

참고 항목

기타 리소스

개체 컨텍스트 관리(Entity Framework)