2010-02-08 3 views
1

DataClassesDataContext를 사용하여 db의 모든 테이블을 asp.net 응용 프로그램에 매핑하고 있습니다.데이터베이스 액세스를위한 정적 클래스?

CRUD 작업을 수행하기 위해 메소드로 정적 클래스를 만들었고 모든 메소드 내부에서 DataClassesDataContext를 인스턴스화했습니다. 내가 웹 응용 프로그램에서 데이터베이스 작업을 수행하는이 방법이 안전한지 확실하지 AAM

public static class UserQ 
{ 
    public static User getUserById(int userId) 
    { 
     DataClassesDataContext db = new DataClassesDataContext(); 
     var requestedUser = (from u in db.Users 
          where u.User_id == userId 
          select u).First(); 
     if (requestedUser != null) 
      return (User)requestedUser; 
     else 
      return null; 
    } 
} 

: 예를 들어

? 그렇지 않은 경우 더 좋은 패턴을 제안 할 수 있습니까? 내가 저장소 패턴을 살펴 복용 제안

답변

1

:

1) Example 1
2) Example 2는 (얼간이 저녁 식사에서 스콧 특별시의 첫 번째 장 - 그 MVC하지만 저장소 패턴) MVC 오 승/작품 설명 DataClassesDataContext이 IDisposable 구현으로

+0

동의합니다. 정말 단순화하고 LINQ to SQL의 경우 IQueryable을 사용하면 성능이 크게 향상됩니다. 여기 좀 봐 http://stackoverflow.com/questions/1223194/loading-subrecords-in-the-repository-pattern –

+0

감사. 이전에 저장소 패턴에 대해 들어 보지 못했습니다. 기사를 습격 한 후에 나는 말할 수있다 : 중대한! –

2

, 당신은 using 지시문로 포장해야합니다

using (DataClassesDataContext db = new DataClassesDataContext()) 
{ 
... 
} 
1

나는 매우 조심해야 것 웹 응용 프로그램에서 STATIC을 사용합니다. 때로는 버그가 너무 미묘하기 때문에 디버깅에 많은 시간을 할애해야합니다. 저장소 패턴 & 보면 ... 사용하여 성명에서

HTH 당신의 상황에 맞는 전화를 포장 :

나는 bnkdev & 오뎃은 머리에 못을 칠 생각합니다.