Справочная информация:
Я использую Microsoft Visual Web Developer 2010 Express.
Информация о моем (нехватке) опыте: проблемапроизошло в первом уроке, который я пытаюсь проработать.
Некоторая дополнительная информация:
- Мне комфортно с C #, Postgres, Rails (так что MVC и веб-приложения для меня не новы)
- I нет опыта работы с ASP.NET или SQL Server
Описание проблемы:
Я пытаюсьв точности следуя инструкциям «Введение в ASP.NET MVC 3» , и я столкнулся с проблемой на первом шаге из части 5 - Добавление MoviesController:
Когда я пытаюсь добавить «MoviesController» с точными настройками, показанными в руководстве, и нажимаю «Добавить», я получаю следующую ошибку:
«Невозможнополучить метаданные для MvcMovie.Models.Movie. Невозможно найти запрошенный поставщик данных .Net Framework. Возможно, он не установлен. "
Google дал массу результатов при поискедля фразы «Невозможно найти запрошенный поставщик данных .Net Framework», но пока проблема не решена.
Что я пробовал:
Я думаю, что SQL-сервер не был установлен, поэтому я установил его из Visual-Studio Express ISO-я получил сообщение об ошибке, после чего я выполнил восстановление из ISO, и он заявил, что все 15 пунктов, включая восстановление SQL Server Express и .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"/>
Конфигурация моей машины-file имеет только одну запись 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. "
из http://social.msdn.microsoft.com/Forums/en-ZA/adodotnetdataproviders/thread/d79129c4-ae05-4c45-8997-bd90f5765a3a
Вопрос:
Так что, возможно, это неправильное направление, и, поскольку я понятия не имею, что делать дальше, какие шаги я должен предпринять, чтобы исследовать и решить эту проблему?
Кстати.Я установил postgres, поэтому если бы вместо SQL-сервера было бы удобнее использовать postgres, дайте мне знать.Для моих собственных проектов я бы в любом случае хотел использовать другую БД (возможно, postgres), но сейчас я просто хотел бы иметь возможность успешно пройти первый и, казалось бы, простой урок, который я пробовал.