다음을 통해 공유


개체 서비스에서 연결 관리(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)