Windows Forms에서 소규모 데이터 집약적 인 응용 프로그램을 구축하고 있습니다. 기본 프로젝트에서 데이터베이스에 대한 CRUD 작업을 제공하기 위해 데이터 클래스뿐만 아니라 내 DBML을 보유하는 폴더가 있습니다. 현재 약 10 개의 데이터 클래스가 있습니다.데이터 액세스 및 데이터 액세스 클래스 디자인 개선
양식의 코드 뒤에는 비즈니스 개체가 인스턴스화되고 모든 작업을 수행하도록 호출됩니다. 이 Business Object는 정적 데이터 액세스 클래스를 호출합니다.
데이터 클래스의 예는 지금 분명히 내가 해결해야 내 초기 설계에 몇 가지 문제가이
static class CustomerData
{
public static IEnumerable<Customer> GetCustomersForRun(int runID)
{
var db = new FooDataContext("connectionString");
return db.Customers.Where(ri => ri.RunID == runID);
}
}
같은 것입니다.
1) 각 정적 메서드에 자체 DataContext를 만들어야하는 것은 좋지 않습니다. 이것은 전혀 건조하지 않은 것 같습니다.
2) 일부 게으른 로딩에 의존하기 때문에 using 문에서 DataContext를 래핑 할 수 없습니다.
나는이 문제를 해결해야 할 다른 생각의 몇
1)
는 정적 메소드를 제거하고 대신 내의 DataContext를 인스턴스화 할 수있는 추상 기본 데이터 액세스 클래스를 생성하기입니다.2) 각 비즈니스 객체가 자신의 DataContext를 작성하고이를 데이터 액세스 클래스의 정적 메소드에 전달하도록하십시오.
방법 서명의 예는 다음
public static IEnumerable<Customer> GetCustomerForRun(DataContext db, int runID)
내 구체적인 질문이
1) 내가 이상이 복잡 건가요 있습니다 것입니까?
2) 일반적으로 DataContext 개체를 삭제 하시겠습니까?
3) 가장 적합한 솔루션은 무엇입니까? 그들 중 어느 것도 추천하지 않는다면?
저장소 및 작업 단위 패턴 확인 : http://www.google.ca/search?hl=ko&q=repository+unit+of+work+linq+to+sql&aq=f&aqi=&aql=&oq= –