Справочная информация:
Я использую Microsoft Visual Web Developer 2010 Express.
Информация о моем (отсутствии) опыта: проблема возникла в первом руководстве, которое я пытаюсь проработать.
Некоторая дополнительная информация:
- Мне комфортно работать с C #, Postgres, Rails (поэтому MVC и веб-приложения для меня не новость)
- У меня нет опыта работы с ASP.NET или SQL Server.
Описание проблемы:
Я пытаюсь точно выполнить шаги из "Введение в ASP.NET MVC 3 ", и я столкнулся с проблемой первый шаг из части 5 - Добавление MoviesController:
Когда я пытаюсь добавить «MoviesController» с точными настройками, показанными в руководстве, и нажимаю «Добавить», я получаю следующую ошибку:
«Невозможно получить метаданные для MvcMovie.Models.Movie. Невозможно найти запрошенный поставщик данных .Net Framework. Возможно, он не установлен».
Google дал массу результатов при поиске фразы «Невозможно найти запрошенного поставщика данных .Net Framework», но пока ничего не решило проблему.
Что я пробовал:
Я думаю, что SQL-Server не был установлен, поэтому я установил его из 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"/>
В конфигурационном файле моей машины есть только одна запись 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».
Вопрос:
Так что, возможно, это неправильное направление, и, поскольку я не знаю, что делать дальше, какие шаги мне следует предпринять, чтобы исследовать и решить эту проблему?
Между прочим. У меня установлен postgres, поэтому, если использовать postgres вместо SQL-сервера, дайте мне знать. Для моих собственных проектов я все равно хотел бы использовать другую БД (возможно, postgres), но пока я просто хотел бы иметь возможность успешно пройти через первый и, казалось бы, простой учебник, который я пробовал.