2014-01-15 168 views
0

我遇到過幾個博客和論壇,發現這種方式與MODEL類從控制器使用LINQ到SQL交互從控制器訪問模型,這是一個好方法嗎?

它是一種正確的方式來訪問?

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

對於小型項目和教程來說,這很好,並且是推薦的方法。

小提示:你可以在using語句這需要關閉連接並釋放資源的關懷包裹MovieDataContext

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

記住使用這個時候,你不能在延遲加載的特性因爲當對象被髮送到視圖時數據上下文被關閉,所以你的視圖已經不存在了。所以像movie.Director.Name這樣的查詢將無法工作,除非您急於加載它。

0

這不一定是壞事,但你可以通過使用衆所周知的模式和最佳實踐,即分層,倉庫等

理想的改善就可以了,這是好事,保持控制器儘可能薄並委託所有數據庫操作或下層所需的任何邏輯,例如服務層。

相關問題