подключение к базе данных с помощью MVC

#asp.net-mvc #database

#asp.net-mvc #База данных

Вопрос:

У меня есть asp.net приложение mvc, и мне нужно подключиться к БД я видел обучающее видео, в котором выполняется подключение к БД с помощью мастера добавления подключения к БД, определения БД и добавления модели, но мне нужно знать, могу ли я использовать строку подключения и запрашивать БД или вызывать процедуры в БД???

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

Заранее спасибо, и я новичок в MVC

Комментарии:

1. Используете ли вы OR / M, такие как SubSonic, LINQ to SQL, NHibernate и т.д.? Смотрите мой ответ ниже для получения более подробной информации.

2. Ahmy — вы знакомы с доступом к базам данных с помощью кода (вместо мастера)? Если вы обычно используете мастер для всего, ASP.NET Возможно, MVC вам не по вкусу. Если вам неудобны различные уровни, я бы посоветовал поместить весь код в классы вашего контроллера для примера приложения. Несмотря на то, что это называется MVC, на самом деле вам нужны только контроллер и представление, чтобы создать эффективную демонстрацию.

Ответ №1:

Я не решаюсь ответить на это, но каждое видео, которое вы видели, скорее всего, использует OR / M для генерации модели и DAL. Созданный DAL, скорее всего, инкапсулирует ваши вызовы хранимых процедур, о которых вы спрашиваете.

Дело в том — и вот почему вы не получаете искомого ответа — у каждого OR / M будет свой метод извлечения данных из базы данных и вставки данных в нее. Способ извлечения данных из базы данных с помощью OR / M будет отличаться, если вы используете Entity Framework, Linq to SQL, SubSonic, NHibernate или любой другой OR /M.

Итак, вопрос к вам. Вы используете a или / M? Если да, то какой именно? Если нет, то вы будете использовать стандартный ADO.NET вызовы для извлечения и сохранения данных. Это также отражено в моем комментарии к вашему первоначальному вопросу.

Ответ №2:

Да, вы можете (Google ado.net для учебных пособий по ado.net ), но это не способ MVC. Способ MVC заключается в использовании какого-либо ORM (объектно-реляционное отображение), такого как NHibernate, Subsonic или Linq для SQL.

Комментарии:

1. Использование ORM или какого-либо промежуточного программного обеспечения — это не способ MVC, это ленивый способ (и я использую их, потому что я не хочу создавать обычный код ado.net ).

2. Вы ошиблись, мне нужно знать, куда поместить строку подключения, она есть в web.config, как в прошлом? и, во-вторых, как я могу вызвать процедуру из model и получить результирующие данные? я не знаю, как это сделать в mvc, а не как получить доступ к БД!!! вы неправильно поняли мой вопрос, я погуглил это и не получил явного ответа о том, куда поместить код, который обращается к БД, и как я могу получить результирующие данные для отображения в поле зрения

Ответ №3:

как подключиться к БД без мастера и процедур вызова и таблиц запросов.

Для вызова процедуры (здесь она не вернет результата, просто выполните некоторое действие):

 using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection .Open();
    using(SqlCommand command = connection.CreateCommand(nameofthestoredprocedure))
    {
      command.CommandType = CommandType.StoredProcedure;
      command.Parameters.AddWithValue("@someparameter", somevalue);
      maCommande.ExecuteNonQuery();
    }
}
  

Комментарии:

1. Мистер Грегуа, куда поместить этот код (несмотря на то, что мне этот код не нужен)???? Мне нужно знать, как я буду интегрироваться с моделью, представлением и контроллером? нужно ли мне создавать контроллер и помещать этот код внутрь? или мне нужно поместить этот код внутрь модели после создания внутри нее класса???? пожалуйста, помогите мне и спасибо за ваше большое внимание

2. Вы должны поместить этот код в класс на вашем уровне доступа к данным. Обычно у вас будет: view<—>Controller<—>Repository<—>DataAccess<—> Storedproc<—> таблица, представление и контроллер обмениваются моделью, dataaccesses, repository, controller обмениваются некоторыми объектами данных

Ответ №4:

Вы можете поместить свою строку подключения в конфигурацию, как вы привыкли.

Вы можете вызывать процедуры так же, как и из любого другого.Сетевое приложение тоже. советы @svinto по использованию ORM — это еще один способ выполнения задач, на который тоже стоит обратить внимание. Многие хорошие примеры для ASP.Net В MVC используются методы ORM.

Если вы не хотите идти по этому пути, вам может быть полезно создать отдельный проект библиотеки классов, на который вы ссылаетесь из своего приложения MVC. Ваш проект библиотеки классов может выступать в качестве вашего уровня доступа к данным (DAL), где вы обрабатываете вызовы БД и т.д…

Затем ваши контроллеры могут вызывать ваш DAL и методы обработки для заполнения объектов для представлений.

Комментарии:

1. Спасибо mr.grenade, но после ввода строки подключения в web.config как я могу вызвать свои процедуры из модели? должен ли я добавлять класс, который включает метод для вызова процедур? если то, о чем я думаю, верно, и я создал класс в папке model, то как я могу позволить контроллеру вызывать этот класс, получать данные и передавать их в отображаемое представление? на самом деле я слишком озадачен, и я ненавижу MVC в начале из-за меньшей помощи в этой теме

2. Если вы хотите наслаждаться более простой стороной жизни, вам действительно не мешало бы последовать совету из поста @svinto.

3. Нет, мне нужно знать, как вызвать процедуру из модели были ли мои мысли правильными при создании класса, который включает методы, вызывающие процедуры БД? пожалуйста, мне нужна явная помощь, чтобы не смеяться, моя работа прервалась, и я не знаю, как возобновить надеюсь, что вы понимаете, что мне нужно

4. Никто не смеется над вашей работой. Если вы хотите вызывать хранимые процедуры из MVC, просто создайте несколько вспомогательных методов в своем контроллере или в отдельной сборке, которые делают именно это. Создайте несколько моделей в вашей папке Models и заполните их (либо в вашем контроллере, либо в вашей вспомогательной сборке, вызываемой с вашего контроллера).

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

Ответ №5:

Ахми, я думаю, что лучший совет, который можно было бы дать, — это перед началом разработки с использованием MVC framework ознакомиться с принципами, лежащими в основе шаблона MVC и дизайна, управляемого доменом.

В частности, взгляните на шаблоны репозиториев и т.д.

В конце концов, вы все еще можете добавить строки подключения в свой web.config в виде блока и получить к ним доступ, как вы бы сделали в проекте webforms Asp.net MVC основан на webforms. Вполне вероятно, что вы на самом деле не хотели бы этого делать, если используете MVC так, как это было задумано, все дело в разделении проблем.

www.asp.net содержит отличное вступление. примеры, которые стоит посмотреть.

Комментарии:

1. я скачал видео оттуда и просмотрел его, как я упоминал в своем вопросе, но они подключаются к БД через мастер, создавая БД и добавляя таблицу с записями и запрашивая эти записи, но что мне нужно, так это то, что БД уже существует, и мне нужно вызвать процедуры, и я не знаю, как это сделать в модели и как получить данные из модели в контроллере, чтобы поместить их в соответствующее представление?????? спасибо за ваше внимание, надеюсь, что вы ответите мне, пожалуйста, потому что мне стало скучно с MVC

2. Более чем вероятно, что все видео, которые вы там смотрели, используют инструмент Linq to SQL ORM, как упоминалось выше. Если у вас есть Visual Studio, вы должны быть в состоянии сделать то же самое. Используйте Server Explorer, чтобы указать на БД, а затем используйте Linq to SQL для построения вашей модели ORM.

3. … если проблема, с которой вы столкнулись, связана с дизайном вашей модели, представлениями и т.д., То проблема, с которой вы столкнулись, на самом деле не связана с подключением к БД, и лучше всего ознакомиться с самим шаблоном MVC. Я надеюсь, что это поможет.

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

5. Взгляните на : oxite.codeplex.com которое является приложением MVC. Ваш доступ к данным может осуществляться таким же образом, как и в приложении webforms, просто это неправильный способ сделать это. Я предлагаю купить эту книгу: apress.com/book/view/1430210079

Ответ №6:

Попробуйте загрузить NerdDinner или даже лучше… ContactManager итерация 1 (руководство непосредственно отвечает на ваш вопрос). Это должно дать вам хорошее представление о том, как обрабатывать доступ к базе данных. Я бы не советовал смотреть на что-то вроде Oxite или MS StoreFront, поскольку они немного сложнее.

Чтобы конкретно ответить на ваш вопрос: строка подключения, как в ASP.NET , можно использовать в вашем web.config или жестко запрограммировать в вашем приложении.