Я думаю, проблема в том, что вы пытаетесь сделать это в отдельной базе данных SQLExpress. Возможно, у вас есть другая копия AdventureWorks, которая на самом деле постоянно прикреплена, поэтому вы не видите никаких ошибок.
Пожалуйста, попробуйте следующее:
1) Если у вас еще нет копии SQL Server Management Studio [Express], получите ее - с этим будет легче работать, чем в Visual Studio.
2) Запустите следующий скрипт:
USE AdventureWorks
SELECT name, physical_name
FROM sys.database_files
3) Если вы получили сообщение об ошибке, в котором говорится, что база данных не существует, перейдите к шагу 5. Если вы увидите physical_name
записи, которые не соответствуют локальным в вашей папке app_data
, перейдите к следующему шагу. Если вы видите записи, которые являются в той же папке app_data
, то я в тупике.
4) Выполните следующее, чтобы отсоединить существующую БД:
EXEC sp_detach_db 'AdventureWorks'
5) Выполните следующее, чтобы подключить базу данных SQL Express для вашего приложения:
EXEC sp_attach_db 'AdventureWorks',
'C:\inetpub\wwwroot\MyApp\App_Data\ASPNETDB.MDF',
'C:\inetpub\wwwroot\MyApp\App_Data\ASPNETDB_log.ldf'
6) Запустите инструмент aspnet_regsql еще раз с теми же параметрами, которые вы использовали изначально, за исключением того, что в конце имени базы данных не включается .mdf
.
7) Проверьте в SSMS [E], что таблицы были созданы.
8) Снова отключите базу данных с помощью EXEC sp_detach_db 'AdventureWorks'
(вам нужно будет сделать это, если приложение полагается на специальное вложение в строке подключения, что, я держу пари, делает).