Я создал новое приложение ASP.NET MVC 4 и хотел бы, чтобы он сначала использовал код. Однако, по-видимому, он не создает исходный файл базы данных, если он уже не существует. Если я удалю файл .mdf из папки App_Data, я получаю следующее исключение, когда приложение пытается получить доступ к базе данных:
System.Data.SqlClient.SqlException: Cannot attach the file '<path-to-db-file>.mdf' as database '<my-db-file-name>'.
Если я запустил его в приложении в отладчике, я вижу, что это исключение происходит в методе InitializeSimpleMembershipAttribute:: OnActionExecuting при вызове LazyInitializer.EnsureInitialized. Исключенное исключение:
[System.Reflection.TargetInvocationException] {"Exception has been thrown by the target of an invocation."} System.Reflection.TargetInvocationException
С внутренним исключением:
[System.InvalidOperationException] {"The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588"} System.InvalidOperationException
Который имеет первое исключение, упомянутое выше как внутреннее исключение.
Любые идеи, что я делаю неправильно?
Обновление
Я только что попробовал это с новым приложением MVC4. Я могу воспроизвести его, выполнив следующие действия:
- Создайте приложение MVC в мастере VS.
- Запустите приложение в первый раз и перейдите на страницу входа (обратите внимание, что файл mdf теперь генерируется).
- Удалите файл mdf и вернитесь на страницу входа в систему. Исключение теперь выбрано.