2010-02-02 4 views
1

난 그냥 asp.net mvc에서 SQL Server 2005 저장 프로 시저를 사용하는 방법?

내가 sql server 2005에서 데이터베이스를 가지고 ... 지금까지 내 웹 양식 응용 프로그램에서 내가 ADO.NET ... 난 내 asp.net MVC apllication에서 동일한 원하는 사용 ... asp.net mvcsql server 2005으로 새로운 웹 응용 프로그램을 시작했습니다 모든 stored procedures에 ... 지금은

model를 호출 모든 샘플 controller .. 내가 ADO.NET을 사용하려면 ... 어떤 ORM를 사용 해달라고 ... 내 MVC 응용 프로그램에서 이러한 저장 프로 시저를 사용하려면 stored procedure을 사용하고 controllerDataset을 반환 한 다음 th e controller to View 레코드를 표시하는 중 ... 제안 사항 ...

+0

제안 : 태그 ADO.Net을 추가하고 asp.net-mvc를 제거합니다. –

+0

@Moron asp.net MVC와 함께 사용하고자합니다 –

+3

ADO.NET을 사용하고 저장 프로 시저를 호출하는 데 주된 문제가 있습니까? 맨 위에 asp.net-mvc를 사용하고 있다면 정말 중요합니까? –

답변

2

컨트롤러가보기로 보내는 저장 프로 시저의 데이터로 모델을 채우는 서비스 또는 리포지토리를 사용하는 것이 좋습니다. 나는 ADO.NET을 사용하고자하는 욕구와 ORM을 피할 이유가 확실치 않습니다. 현실은 엔티티 프레임 워크, Linq2Sql, SubSoncic 및 NHibernate는 매우 검증되고 신뢰할 수 있습니다.

다음은 간단한 샘플입니다. SqlConnection 및 SqlCommand를 사용하여 저장 프로 시저를 호출합니다.이 코드를 컨트롤러가 모델을 가져 오기 위해 호출하는 별도의 클래스에 넣습니다.

public BlogEntry GetBlogEntry(int blogId) 
    { 
     SqlConnection sqlConnection = new SqlConnection(); 
     sqlConnection.ConnectionString = MyConnectionString; 
     SqlCommand sqlCommand = new SqlCommand(); 
     sqlCommand.CommandText = "mySproc"; 
     sqlCommand.Connection = sqlConnection; 
     sqlConnection.Open(); 
     var reader = sqlCommand.ExecuteReader();. 
     var blogEntry = new BlogEntry(); 

     while (reader.Read()) 
     { 
      //do something to fill your model... 
     } 
     return blogEntry; 
    } 
+2

finally 블록이 있어야하는데, 여기서 connection과 reader는 닫힌다. –

+0

동의! 나는 이것을 테스트하지 않았거나 적절한 예외 처리를 추가하지 않았다. 난 복사 붙여 넣기 준비 구현을 찌르는 것으로 볼 수 없습니다. – RSolberg

관련 문제