2012-08-29 1 views
7

Мне жаль, если это не в том месте, но я думаю, что это так.Лучшая практика для редактирования сгенерированного кода MVC3?

Итак, я при создании интернет-приложения MVC3 использовал первый метод базы данных, и для меня были созданы мои классы. Я новичок в MVC3 и довольно новичок в C# и visual studio, хотя у меня есть небольшой опыт.

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

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

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

ответ

11

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

+0

+1 «частичное» ключевое слово - это правильный путь, как управлять автоматически созданным и настроенным кодом вместе. – TcKs

+0

Спасибо, прочитаю частичные классы и как их собрать. Принят, когда это позволит мне. :) – Bohdi

+0

Итак, если у меня есть публичный 'partial class pagetest' в файле класса, который называется pages.cs, а автоматически созданная страница класса называется news_page, но также называется 'partial class pagetest', будет ли эта работа? они как в модели, так и в рамках одного и того же проекта пространства имен. Модели. Однако автоматически генерируемый частичный класс находится в файле .edmx. нужна ли другая половина частичного класса? – Bohdi

1

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

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