2013-04-30 3 views
0

У меня есть опыт работы с webForms, и теперь я начинаю изучать MVC, о мальчик .... все выглядит так по-другому. Поскольку мой фон - это webForms, я просто хочу убедиться, что если я сделаю это правильно. Я извлекаю данные (запросы, хранимые процедуры и т. Д.) Из MS SQL Server. & Цель - представить их в представлении. вот что я сделал так сэр.MVC & Доступ к базовым данным

Вот моя модель

Class Product ' Just a Template 
    private _title 
    private _price 
    ' property implementation etc 
End Class 

Class ProductModel ' Returns Actual Data 

    Function getProducts as list(of product) 
     ' use SqlDataReader to Execute the Stored Procedure 
     ' Populate a list(of product) 
     ' list.add(new product(title,price)) 
     ' Return the List 
    end function 


    Function getTopProducts() as list(of products) 

    End Function 
End Class 

Теперь Вот мой ProductsController индекс() ActionMethod.

Dim p as new ProductModel 
return view(p) 

Тогда в моей точки зрения (что сильно типизированных для ProductModel Class), я использую для каждого на Model.getProducts или Model.getTopProducts и показывать данные на экране.

Теперь несколько вопросов ... прежде всего, мой подход разумный? это стандартный способ настройки моделей с MVC? Если нет, то, пожалуйста, поправьте меня.

Во-вторых, все примеры, которые я вижу в Интернете, я вижу людей, использующих LINQ, EF и т. Д. Однако в моей среде производительность очень важна, и я почти всегда возвращаю данные с помощью хранимых процедур, так что это нормально использовать чистый ADO.NET или использовать LINQ/EF, может помочь мне каким-то образом?

+1

Использование чистого ado.net считается лучшим решением, если вы мало знаете об ORM. Причина эффективности формы (если вы не много разбираетесь в ORM), ado.net считается лучшим –

ответ

1

... мой подход разумный? это стандартный способ настройки Модели с MVC? Если нет, то, пожалуйста, поправьте меня.

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

это нормально использовать чистый ADO.NET или использовать LINQ/EF может помочь мне в некоторых способом?

Прекрасно использовать чистый ADO.NET, если вы чувствуете, что выполняете все грязные работы, предоставляемые ORM.

+0

Должен ли я событие передавать экземпляр моего модельного класса (модели продукта) для просмотра с моего контроллера? Я могу просто наследовать свой вид из класса ProductModel и просто использовать его сущности в моем представлении. – highwingers

+0

Если вы создаете новую модель с коллекцией, которая идет с ней, тогда ответ будет ДА.Вы должны иметь возможность передавать коллекции, которые вам нужны на ваш взгляд, с вашего контроллера. И вы не «наследуете» класс на своем представлении, вы «используете» (или потребляете) его. –

1

Вы выбираете тот, который в основном показан, когда вы узнаете о MVC. Однако, если вы хотите быть немного придирчивым относительно соглашения об именах, то ваш ProductModel будет называться ProductViewModel. Этот ViewModel позволит вам передавать больше информации в представление, чем доступно в вашем классе Product (это ваш класс модели). Но это незначительно, хотя вы должны привыкнуть к использованию View with ViewModels.

Что касается вашего второго вопроса, вы можете использовать все, что хотите, в качестве технологии доступа к данным. Entity Framework продвигается Microsoft как одна из ее технологий для управления информацией в базе данных. Однако, если вы хотите, вы можете использовать ADO.NET с хранимыми процедурами, или вы можете использовать RavenDB со своим собственным клиентским интерфейсом. Это действительно зависит от вас.

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