Фоновая информация:
Я использую Microsoft Visual Web Developer 2010 Express.
Информация о моем (недостатке) опыте: проблема возникла в первом учебнике, которое я пытаюсь выполнить.
Дополнительная информация:
- Мне нравится С#, Postgres, Rails (поэтому MVC и веб-приложения для меня не новы)
- У меня есть нет опыт работы с ASP.NET или SQL Server
Описание проблемы:
Я пытаюсь выполнить именно шаги из "Введение в ASP.NET MVC 3" - учебник, и я сталкиваюсь с проблема на первый шаг из части 5 - Добавление MovieController:
Когда я пытаюсь добавить "MovieController" с точными настройками, которые показаны в учебнике, и нажмите "Добавить", я получаю следующую ошибку:
"Невозможно получить метаданные для MvcMovie.Models.Movie. Невозможно найти запрошенные данные .Net Framework Поставщик. Он не может быть установлен.
Google дал массу результатов при поиске фразы "Не удалось найти запрошенный поставщик данных .Net Framework", но до сих пор ничто не решило проблему.
Что я пробовал:
Я думаю, что SQL-Server не был установлен, поэтому я установил его из Visual-Studio Express ISO, получил ошибку, после чего выполнил ремонт из ISO, и он утверждал, что все 15 пунктов, включая SQL Server Express repair &.NET 4 Framework прошла успешно.
Я запустил The_.NET_Framework_Setup_Verification_Tool, который преуспел для всего. http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx
После упомянутой (повторной) установки и ремонта я воссоздал проект и следил за каждым шагом, как описано в учебнике, и получил ту же ошибку.
Я обнаружил, что я должен искать DbProviderFactories в machine.config,
В файле root-Web.config проекта есть следующие записи
<connectionStrings>
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
В моем конфигурационном файле машины есть только одна запись DbProviderFactories:
<DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
то я нашел следующую цитату
"мы изменили способ DbProviderFactories.GetFactoryClasses() определяет поставщиков рамок в VS2010. Они больше не перечислены в файл machine.config."
Вопрос:
Итак, возможно, это неправильное направление, и поскольку я не знаю, что делать дальше, какие шаги я должен предпринять, чтобы исследовать и решить эту проблему?
Btw. У меня установлены postgres, поэтому если использовать postgres вместо SQL-сервера было бы легким решением, дайте мне знать. Для моих собственных проектов я хотел бы использовать другую БД в любом случае (возможно, postgres), но на данный момент я просто хочу иметь возможность успешно пройти первый и, казалось бы, простой учебник, который я пробовал.