2014-01-15 2 views
0

Я столкнулся с несколькими блогами и форумами и нашел этот способ взаимодействия с классом MODEL с контроллером с использованием LINQ to 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

Для небольших проектов и учебных пособий это прекрасно и рекомендуется.

Небольшой совет: Вы можете обернуть MovieDataContext в использовании заявление, которое заботится о закрытии соединения и освобождения ресурсов:

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

Имейте в виду, при использовании этого, вы можете не свойства отложенной нагрузки в ваше представление больше, поскольку контекст данных закрыт, когда объект отправляется в представление. Таким образом, такой запрос, как movie.Director.Name, не будет работать, если вы не захотите его загрузить.

0

Это не обязательно плохо, но вы можете улучшить его путем применения хорошо известных моделей и передовых методов, т.е. отводками, хранилищам и т.д.

В идеале, хорошо держать контроллер как можно тоньше и делегировать все операции с базой данных или любую другую логику, требуемую на нижних уровнях, например, например, для служебного уровня.

Смежные вопросы