2012-07-05 1 views
1

ASP.NET Web Forms/C#을 사용하고 있습니다.Linq to SQL을 사용할 때 BLL 클래스에서 데이터 액세스 및 비즈니스 로직을 사용해야합니까

신청서에 BLLDLL을 구현하는 방법을 연구했습니다.

많은 사람들이 Linq To SQL을 사용하면 DAL을 대체한다고 알았습니다.

따라서 데이터에 액세스하고 BLL 클래스 내에 비즈니스 로직을 구현해야합니다. 올바른지 반드시 확인하십시오.

현재 클래스 CustomerBLL이 있습니다. 데이터에 액세스하고 그 안에 비즈니스 로직을 구현 중입니다.

제 질문은 좋은 접근 방법입니까?

수행 할 수 있습니까?

또한 현재 하나의 BLL 클래스가 있으며 .aspx 페이지 당 하나 또는 하나만 사용하거나 비슷한 페이지를 그룹화해야합니다.

여기에 내 CustomerBLL.cs (몇 가지 기능 만 포함)입니다.

namespace CwizBankApp 
{ 
    public class CustomerBLL 
    { 
     public string GetDateFormat() 
     { 
      using (var db = new DataClasses1DataContext()) 
      { 
       var format = db.CODEs.Where(code => code.NAME.Equals("dateformat")).Select(code=>code.DRNAME) .SingleOrDefault(); 
       return format; 
      } 
     } 

     public IList<string> GetAccountTypes() 
     { 
      using (var db = new DataClasses1DataContext()) 
      { 
       var acctype = db.mem_types.Select(account=>account.CustCategory).Distinct().ToList(); 
       return acctype; 
      } 
     } 




     public IList<mem_city> GetCities(int index) 
     { 
      using (var db = new DataClasses1DataContext()) 
      { 
       var city = db.mem_cities.Where(c => c.state_id.Equals(index)).ToList(); 
       return city; 
      } 
     } 

     public string InsertDate(string datefield,string dateFormat) 
     { 
      string dd, mm, yyyy; 
      string date; 
      string [] split = Regex.Split(datefield, @"/"); 
      yyyy = split[2]; 
      if (dateFormat.Equals("British")) 
      { 
       dd = split[0]; 
       mm = split[1]; 
      } 
      else 
      { 
       dd = split[1]; 
       mm = split[0]; 
      } 

      date = mm.PadLeft(2, '0') + "/" + dd.PadLeft(2, '0') + "/" + yyyy; 
      return date; 
     } 

     public string RetrieveDate(string datefield,string dateFormat) 
     { 
      string dd, mm, yyyy; 
      string date; 
      string [] split = Regex.Split(datefield, @"/"); 
      dd = split[1]; 
      mm = split[0]; 
      yyyy = split[2]; 

      if (dateFormat == "British") 
      { 
       date = dd.PadLeft(2, '0') + "/" + mm.PadLeft(2, '0') + "/" + yyyy; 
      } 
      else 
      { 
       date = mm.PadLeft(2, '0') + "/" + dd.PadLeft(2, '0') + "/" + yyyy; 
      } 
      return date; 
     } 
} 

모든 의견을 환영합니다.

답변

3

일반적으로 DAL에서 BL을 분리하므로 DAL에 BL에 대한 참조가 필요합니다. 이것은 BL에 POCO와 저장소/작업 단위 /를 설명하는 인터페이스가 포함되어 있다는 것을 의미합니다 ... 그래서 질문에 대답하기 위해 그래도 L2S를 사용하는 DAL을 만듭니다.

두 번째 질문에 대답하려면 도메인에 존재하는 엔티티마다 하나의 비즈니스 개체를 만듭니다. 보통 DAL의 테이블과 일치합니다. 귀하의 aspx의 코드 숨김은 비즈니스 계층이 아닌 페이지의 논리를 포함합니다.

+0

의견을 보내 주셔서 감사합니다. – freebird

+0

모든 기사 링크 또는 간단한 예가 큰 도움이 될 것입니다. 감사합니다. – freebird

+0

나 자신을 요리 할 수 ​​있는지 보겠지 만 언제 투영 할 수는 없다. – Maarten