Лучшая практика для редактирования автоматически сгенерированного кода MVC3?

Извините, если это не в том месте, однако я думаю, что это так.

Поэтому при создании интернет-приложения MVC3 я использовал первый метод базы данных, и мои классы были сгенерированы для меня. Я новичок в MVC3 и довольно новичок в С# и Visual Studio, хотя у меня есть небольшой опыт.

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

Однако можно ли отредактировать его и просто отслеживать изменения, если мне нужно восстановить, или есть лучший способ сделать это?

Спасибо за любую помощь.


person Bohdi    schedule 29.08.2012    source источник


Ответы (2)


Сгенерированные классы должны быть partial классами, чтобы вы могли управлять улучшениями извне, создав свой собственный partial класс с тем же пространством имен и именем.

person hunter    schedule 29.08.2012
comment
+1 частичное ключевое слово — это правильный способ одновременного управления автоматически сгенерированным и настроенным кодом. - person TcKs; 29.08.2012
comment
Спасибо, буду читать о частичных классах и о том, как их собрать. Примет, когда позволит. :) - person Bohdi; 29.08.2012
comment
Итак, если у меня есть публичный «тест страницы частичного класса» в файле класса с именем pages.cs, а автоматически сгенерированная страница класса называется news_page, но также называется «тест страницы частичного класса», это будет работать? они оба находятся в модели и оба находятся в одном и том же пространстве имен project.Models. Однако автоматически сгенерированный частичный класс находится в файле .edmx. Туда же нужно переместить и другую половину частичного класса? - person Bohdi; 29.08.2012
comment
Пока сгенерированный класс и ваш пользовательский класс имеют одинаковые namespace и имя. В вашем примере вы хотели бы назвать свой собственный класс news_page. - person hunter; 29.08.2012

В первом подходе к модели, использующем стратегию генерации кода по умолчанию для вашего файла EDMX, классы, сгенерированные для ваших классов DbContext и Entity, являются частичными классами.

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

person Quinton Bernhardt    schedule 29.08.2012