При попытке создать контроллер в MVC 4 с помощью Scaffolding (EF и CRUD) я получил следующую ошибку:
«Невозможно получить метаданные для MyModel. Аргумент «connectionString» не может быть нулевым, пустым или содержать только пробелы».
Я потратил довольно много времени, пытаясь понять это, но безуспешно из всех сообщений, которые я нашел в Интернете. Однако я нашел способ решить эту проблему, и хотя я поделюсь им здесь.
Мое решение:
- Прокомментируйте весь текущий класс Context для вашей модели, если он у вас есть.
- Удалите любые другие строки подключения для объекта, на который вы нацеливаетесь, если вы пытались решить проблему, добавив строку подключения, как это сделал я...
- Теперь добавьте контроллер с помощью диалогового окна "Добавить": Щелкните правой кнопкой мыши папку "Контроллеры" и перейдите к "Добавить->Контроллер...", укажите имя контроллера и выберите класс модели для использования. В классе контекста данных выберите «Новый контекст данных..». Последняя часть важна, так как скаффолдер теперь создаст для вас полностью функциональную строку подключения и класс контекста!
- Если у вас уже было много работы в предыдущем классе Context, используйте новый в качестве шаблона и скопируйте и вставьте старый в только что созданный.
- Затем удалите созданный контроллер и представления и добавьте еще один контроллер, используя диалоговое окно добавления, как на шаге 3, но на этот раз с классом контекста данных, созданным для вас ранее.
- Могут быть некоторые ошибки, связанные с автоматическими соглашениями об именах, но их довольно просто исправить.
Для справки, я работаю в Visual Studio 2012.
Вот как это сработало для меня. Надеюсь, это поможет всем, кто застрял в той же проблеме. Все отзывы или лучшие решения приветствуются