Как хранить пользователей в моей базе данных SQLEXPRESS в C # MVC? - PullRequest
1 голос
/ 19 октября 2011

Я только изучаю MVC, и я хотел сохранить свои данные в SQLEXPRESS вместо предоставленного файла MDF.

Я вышел в сеть и узнал, что должен изменить Web.config, поэтому я закомментировал и заменил строку подключения следующим образом:

  <connectionStrings>
    <!--<add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />-->
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=BuySellDB"/>
  </connectionStrings>

Я надеялся, что System.Security.Membership автоматически создаст новую базу данных и таблицу для хранения моей информации, но это не так - вместо этого он просто запирает, потому что не может найти базу данных там. Как мне настроить его для создания новой базы данных и таблицы, если ее нет?

Редактировать: Я смотрел обучающие видео на asp.net / mvc и увидел, как DropCreateDatabaseIfModelChanges можно использовать для автоматического создания или повторного создания необходимой базы данных и схемы. Я надеялся, что есть какой-то способ включить таблицы aspnet_* в это ....

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

В сценарии, который вы хотите - ваша база данных является действительным файлом MDF sql express.

Этот является обычно лучшим способом поделиться решением, в противном случае вам придется беспокоитьсяо конфигурации базы данных, настройке базы данных, сервера и т. д. Если вы все еще хотите это сделать, вам нужно будет щелкнуть правой кнопкой мыши ваше подключение к данным в обозревателе серверов в Visual Studio, опубликовать базу данных и сгенерировать сценарии, если у вас естьобычай, иначе используйте aspnet_regsql.

Тем не менее, я по-прежнему настоятельно рекомендую, если вы делитесь этим приложением, вы сохраняете его в папке app_Data и позволяете другим пользователям выбирать, хотят ли они запускаться в другом месте.Они могут публиковать его по своему усмотрению, используя тот же метод.

2 голосов
/ 19 октября 2011

Вы должны создать базу данных самостоятельно, используя команду Promt.

Запустите эту командную строку и выполните aspnet_regsql. Волшебник начнется и помочь вам создать базу данных.

Вот хороший пример => http://www.ezineasp.net/post/How-to-Create-Aspnetdb.aspx

Если вы хотите отдать проект. Подумайте о

  • создать базу данных, как я сказал
  • создать сценарий sql из этого
  • построить базу данных, используя SqlClient в вашем приложении при первом запуске

Вы можете проверить, существует ли база данных в методе application.Start global.asax

protected void Application_Start(Object sender, EventArgs e) 
{
 //... check if your database already exists, if not DO IT ;)
}
...