У меня есть проект ASP.NET MVC 4 - CodeFirst с Entity Framework, который был подключен к базе данных SQL Server Express, созданной EF, и работал нормально.
Однако я пытаюсь выполнить развертывание в AppHarbor и имею некоторые проблемы с версией SQL, работающей там, при подключении к моему приложению.
Итак, я заметил, что у них есть пример проекта, в котором используется SQL Server Compact Edition 4. Вот файл web.config для этого проекта: https://github.com/friism/CodeFirstMigrations/blob/master/Web/Web.config
Кроме того, я нашел руководство о том, как включить базу данных SQL Server CE в ваш проект на сайте Microsoft ASP.NET: http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4
Я решил создать FranchiseManagerData.sdf
файл в папке App_Data и изменить строку подключения и настройки приложения, чтобы они соответствовали их. Вот как выглядит мой Web.config:
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<connectionStrings>
<add name="FranchiseManagerEntities"
connectionString="Data Source=|DataDirectory|FranchiseManagerData.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Когда я запускаю свое приложение, я получаю сообщение об ошибке DataException: The underlying provider failed on Open.
Похоже, что происходит то, что приложение все еще ищет старую базу данных, созданную Entity Framework с именем: FranchiseManagerTest.Models.FranchiseManagerContext
- EF назвал ее после моего класса контекста данных.
Вот ошибка, которая отображается после остановки отладки:
Cannot open database "FranchiseManagerTest.Models.FranchiseManagerContext" requested by the login. The login failed.
Login failed for user 'COMPANY\UserName'.
Я пробовал очистить и восстановить раствор. Кроме того, я удалил содержимое папки bin и снова выполнил чистую перестройку, однако, похоже, он все еще ищет старое соединение с базой данных.
Что я делаю неправильно? Как я могу заставить мой проект искать созданную мной локальную базу данных SQL Server CE, а не предыдущую базу данных?
Если мне нужно предоставить какие-либо дополнительные сведения, пожалуйста, дайте мне знать.
Заранее благодарим.
РЕДАКТИРОВАТЬ
Вот часть раздела System.Web моего файла Web.config:
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off"></customErrors>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>