2012-05-18 2 views
0

엔티티 프레임 워크 및 objectcontext 소비 방법에 관한 간단한 질문입니다.엔터티 프레임 워크, 웹 폼 응용 프로그램에서 컨텍스트 소비

asp.net webform 응용 프로그램에서 데이터 클래스에서 대부분의 데이터 게터를 구현하고 전체 클래스에 대한 개인 컨텍스트를 갖거나 컨텍스트를 선언하는 것이 더 나은지 (일반적인 의미에서 더 나은지)를 판단하려고합니다. 각 방법에서.

예 1 :

public class Data 
{ 
    private MyEntity context = new MyEntity(); 
    public Customer GetCustomer() 
    { 
     return context.Customer.Single(); 
    } 

    public Order GetOrder() 
    { 
     return context.Order.Single(); 
    } 
} 

또는 예 2 :

public class Data 
{ 
    public Customer GetCustomer() 
    { 
     using (MyEntity ctx = new MyEntity()) 
     { 
      return context.Customer.Single(); 
     } 
    } 

    public Order GetOrder() 
    { 
     using (MyEntity ctx = new MyEntity()) 
     { 
      return context.Order.Single(); 
     } 
    } 
} 

답변

2

개인적 그러나 이러한 시나리오 중 어느 것도 실제로이를 다시 전체 게시물에서 공유 컨텍스트를 사용의 큰 팬 메신저 . 개인적으로 선호하는 것은 ninject와 같은 의존성 주입 컨테이너를 사용하여 EF 컨텍스트의 라이프 사이클을 관리하는 것입니다. 즉, 전체 포스트 백을 트랜잭션으로 만들 수 있습니다.

구현의 측면에서 나는 다음과 같은 soemthing 갈 것입니다 :

public class Data 
{ 
    private MyContext _context; 
    public Data(MyContext context) 
    { 
     _context = context; 
    } 

    public Customer GetCustomer() 
    { 
     return _context.Customer.Single(); 
    } 

    public Order GetOrder() 
    { 
     return _context.Order.Single(); 
    } 
} 

를 A는 유사한 바인딩 : DI 말이 사용

Bind<MyContext>().ToSelf().InRequestScope(); 
+0

, 난 그 생각 hadnt 한. 난 꽤 바인딩 코드를 이해하지만 그게 내가 단순한 프로그래머 (부팅하려면 vb.net 코더)이기 때문에 thats 나는 코드가 MVC 공정하다고 생각 반면, 나는 웹 양식을하고있다. – Kiemo

+0

그래, 확실히 MVC 패턴과 잘 어울리나, 웹폼을 위해 도전적으로 할 수있는 것은 http://stackoverflow.com/a/6121250/1070291을 참조하십시오. –