2014-01-15 2 views
0

나는 몇몇 blogs와 forums를 우연히 만나고 LINQ to SQL을 사용하는 컨트롤러에서 MODEL 클래스와 상호 작용하는 방법을 찾았습니다은 좋은 방법입니까?

올바른 접근 방법은 무엇입니까?

using System.Linq; 
using System.Web.Mvc; 

using MvcApplication1.Models; 

    namespace MvcApplication1.Controllers 
    { 
     [HandleError] 
     public class HomeController : Controller 
     { 
       public ActionResult Index() 
       { 
        var dataContext = new MovieDataContext(); 
        var movies = from m in dataContext.Movies 
         select m; 
        return View(movies); 
       } 
     } 
    } 

답변

0

그래, MVC 패턴을 사용하는 표준 방법이어야합니다.

1

소규모 프로젝트 및 자습서의 경우이 방법을 사용하는 것이 좋습니다.

작은 팁 : 당신은 자원을 연결을 닫고 해제 돌봐 사용하여 문에서 MovieDataContext을 포장 수 :

using (var dataContext = new MovieDataContext()) 
{ 
    // query... 
} 

이를 사용할 때 당신이 할 수있는 점에 유의하지 게으른 부하 특성 개체가 뷰로 전송 될 때 데이터 컨텍스트가 닫히기 때문에 뷰를 더 이상 볼 수 없습니다. movie.Director.Name과 같은 검색어는 열망하지 않는 한 작동하지 않습니다.

0

그것은 반드시 나쁘지 않다,하지만 당신은 잘 알려진 패턴과 모범 사례, 즉 레이어, 저장소 등을 이상적으로

을 적용하여 개선 할 수 있습니다, 가능한 한 얇은 컨트롤러를 유지하는 것이 좋다 예를 들어 서비스 계층과 같이 하위 수준에서 필요한 모든 데이터베이스 작업 또는 모든 논리를 위임 할 수 있습니다.

관련 문제