Изменение источника данных модели в MVC2 для выпуска? - PullRequest
0 голосов
/ 12 июля 2011

Если вам не терпится разобраться с этим, просто перейдите к последнему абзацу.

Я совершенно новичок в MVC2 и мне было поручено создать приложение для управления базами данных с его помощью.,Потратив на это несколько недель, я наконец-то начал писать свой производственный код.Чтобы протестировать мой код, мне нужно иметь доступ к копии базы данных на сервере разработчиков.Когда пришло время выпускать релизную версию, она, очевидно, должна работать с действующей базой данных.

Изначально я создал две параллельные модели (используя структуру сущностей) базы данных обслуживания и просто изменилпространство имен другого - что-то вроде DevModels, а не просто Models, чтобы избежать столкновений имен (это точно такая же модель, просто разные источники).Это вызвало больше проблем, чем решило.В любом случае, просматривая книгу Pro ASP.NET MVC 2 Framework, у меня появилась блестящая идея просто изменить источник данных в файле Web.Config.Таким образом, когда я публикую приложение, оно автоматически будет иметь правильный источник данных.Короче говоря, это не совсем сработало и вызвало больше проблем, чем решило.

В любом случае, я немного осмотрелся, но просто не могу ничего найти.Весь материал, который я нахожу, довольно неопределенный и оставляет меня более запутанным.Я уверен, что есть простой способ сделать это, поскольку он должен быть обычным делом.

Итак, в заключение, как мне написать приложение MVC2 один раз и иметь возможность использовать модель с различными источниками данных, такМне не нужно сильно изменять код, чтобы сделать рабочую версию моего приложения?

ОБНОВЛЕНИЕ: Вот строка подключения до и после ее изменения.Before = dev server

`metadata = res: ///Models.MaintModel.csdl | res: ///Models.MaintModel.ssdl | res: //*/Models.MaintModel.msl; provider = System.Data.SqlClient; строка подключения провайдера = 'Источник данных = EXP_POWERSUITE2; Начальный каталог = "Maint DatabaseSQL"; Интегрированная безопасность = True; MultipleActiveResultSets = True' "

` metadata = res:///Models.MaintModel.csdl|res:///Models.MaintModel.ssdl|res://*/Models.MaintModel.msl;provider=System.Data.SqlClient;provider строка подключения ='Источник данных = EXP_POWERSUITE; Начальный каталог = "Maint DatabaseSQL"; Интегрированная безопасность = True; MultipleActiveResultSets = True ""

Кроме того, чтобы убедиться, что у меня есть правильная строка подключения, я запустил новое приложение исделал новый EDM с теми же именами и всем, кроме ориентированных на живую базу данных.Я искал какие-то очевидные различия, но это было то же самое, что и у меня выше.

Кроме того, я могу получать и отображать строки из базы данных в моем приложении.Я просто не могу их добавить.

Я использую MS SQL Server Manager 2008 R2.

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Вы можете получить желаемые результаты, изменив строку подключения в файле web.config, чтобы он указывал на новый источник данных.Это будет работать только в том случае, если в новой базе данных, на которую вы указываете, есть все таблицы, столбцы, ссылки и т. Д. В качестве базы данных разработки.Если он не совпадает, то ваша модель не будет соответствовать новой базе данных, и вы получите ошибки.

Если вы решили внести изменения в вашу базу данных разработки, то вы должны убедиться, что это изменение в новойбаза данных, на которую вы указываете, иначе модель не будет соответствовать.

0 голосов
/ 12 июля 2011

Я просто изменяю строку подключения в файле web.config при публикации, и я рекомендую, какие проблемы это вызывало?

Если структура базы данных одинакова, она должна работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...