Конфигурация ASP.Net SQL ConnectionStrings - PullRequest
2 голосов
/ 19 мая 2011

Я пытаюсь взять ASP.Net - и следую инструкциям mvc: http://www.asp.net/mvc/tutorials/mvc-music-store-part-4 (Примечание: я совершенно новичок в .Net Framework, как C #, так и ASP.Net)

В начале учебник предложил использовать SQL Server Compact 4.0 - но вместо этого я установил SQL Server Express (поскольку я буду использовать его после, а не только для учебника)

SELECT @@VERSION AS [Version]

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 <X64> (Build 7600: ) (WOW64)

Теперь у меня возникли проблемы, когда я добрался до точки, чтобы установить соединение БД для учебника.Шаг учебника, чтобы добавить это в Web.config:

<connectionStrings>
    <add name="MusicStoreEntities"
         connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf"
         providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>  

Но это не сработает - и уверен, что это потому, что я использую другой SQL Server.Предложение о том, как заставить это работать?

Я попытался изменить имя поставщика на «System.Data.SqlClient», но оно все еще не работает, и я тоже попробовал следующее:

  <connectionStrings>
    <add
       name="MusicStoreEntities"
       connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|MvcMusicStore.sdf"
       providerName="System.Data.SqlClient" />
  </connectionStrings>

И он по-прежнему не работает со следующим исключением: поставщик не возвратил строку ProviderManifestToken

Помощь в настройке этого ASP.Net - SQL Server Express 2008 будет принята с благодарностью!


РЕДАКТИРОВАТЬ

Похоже, теперь я заработал, по крайней мере, для подключения к БД:

Теперь, очевидно, база данных пуста - учебник недаже сказать о создании базы данных, кроме загрузки какого-либо файла активов для базы данных «SampeData.cs» и добавления его в метод Global.asax.cs Application_Start:

System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData());

А теперь 2 вещи:

  1. Строка, приведенная выше в Application_Start, кажется, не ударил, когда в режиме отладки (я пытался перестроить решение)

  2. Теперь я получаюследующая ошибка: Модельсовместимость не может быть проверена, поскольку база данных не содержит метаданных модели.Убедитесь, что IncludeMetadataConvention была добавлена ​​к соглашениям DbModelBuilder.

Я думаю, что мне не хватает создания экземпляра данных в БД - но не уверен, как / что - учебник не говорит много

Ответы [ 3 ]

2 голосов
/ 19 мая 2011

Я предполагаю, что вы восстановили копию базы данных в SqlExpress. Как только вы это сделаете, вы должны добавить элемент Database в строку с именем базы данных, которую вы восстановили как. Полезный ресурс для строк подключения: http://www.connectionstrings.com

  <connectionStrings>
    <add
       name="MusicStoreEntities"
       connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Database=MusicStoreEntities"
       providerName="System.Data.SqlClient" />
  </connectionStrings>

Обратите внимание, что у вас есть ссылка на файл .sdf, который является базой данных SqlCE. | DataDirectory | часть заменяется расположением вашей папки App_Data в вашем приложении.

1 голос
/ 19 мая 2011

Вот что я использую:

<add name="<CONNECTION NAME>" 
     connectionString="Data Source=<SERVER NAME>;Initial Catalog=<DATABASE>;Persist Security Info=True;User ID=<USER ID>;Password=<PASSWORD>;" 
     providerName="System.Data.SqlClient" />

Замените <...> значения вашими соответствующими значениями.

0 голосов
/ 19 мая 2011

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

...