2010-03-18 2 views
0

모든 DB 상호 작용을 처리하는 데 사용하는 클래스가 있습니다. 기본적으로이 클래스의 인스턴스가 만들어지면 모델 인스턴스가 만들어지고 DataAccess 개체가 범위를 벗어날 때까지 유지됩니다.엔티티 모델을 통한 DB 액세스 클래스, 연결 정리 방법은 무엇입니까?

public class DataAccess 
{ 
    ModelContainer model; 

    public DataAccess() 
    { 
     model = new ModelContainer(); 
    } 

    public void Close() 
    { 
     if (model != null) 
     { 
      model.Connection.Close(); 
      model.Dispose(); 
     } 
    } 
} 

모델을 미리 정리해야합니까? 내 단위 테스트를 작성할 때 내 Close() 메서드를 호출하는 것을 잊어 버렸습니다. 당신이 SQL에 LINQ에서 사용하는 것처럼 using(DataAccess data = new DataAccess()) DB 객체를 다루는 방식을 좋아합니다. DataAccess를 iDisposeable로 구현해야합니까?

답변

1

클래스에 IDisposable을 구현하는 항목이있는 경우 클래스가 적절하게 구현되도록하여 잘 처리되도록하는 것이 좋습니다. 수업을 처분 할 때 전화하지 않는다면 약간의 메모리 누출이있을 수 있습니다. 그리고 IDisposable을 구현할 때만 할 수있는 언급 한대로 "using"이라고 쓰는 것은 쉽습니다. http://msdn.microsoft.com/en-us/library/system.idisposable.aspx

:

이 IDisosable implenet하는 방법에 대한 좋은 예이다

관련 문제