Если использовать ActiveRecord, генерировать модели каждый раз, когда я изменяю структуру базы данных?

Если это так, я думаю, это проблемы.

2 ответа

Решение

Более того, ошибка времени компиляции, потому что вы переименовали столбец, или ошибка времени выполнения "Столбец xyz не существует".

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

  1. Дозвуковые занятия являются частичными.

    Если вы создадите другой класс в том же пространстве имен, вы можете добавить свойства / методы и переопределить членов (из базового класса).

  2. Изменить шаблоны.

    В зависимости от версии SubSonic (2 или 3) существуют разные подходы к созданию DAL. Но они оба имеют похожий синтаксис aspx (2 = пользовательский, 3 = T4 Engine)

  3. Наследовать от классов.

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

Обновление: шаблоны T4 (*.tt) выполняются только при изменении файла или щелчке правой кнопкой мыши на файле tt и выборе "Запустить пользовательский инструмент". Для SubSonic после изменения схемы вы должны выбрать "Запустить пользовательский инструмент" для каждого файла tt, который вы хотите обновить (ActiveRecord.tt, Structs.tt и т. Д.). Однако T4 - это автономный инструмент, который можно легко интегрировать в процесс сборки:

http://broloco.blogspot.com/2008/11/using-t4-command-line-parameters.html

Если вы используете Subsonic, модель воссоздается при каждом изменении базы данных (автоматически, если вы используете провайдер сборки или вручную, если вы используете Subsonic.exe для генерации классов).

В чем проблема с тем, что модель регенерируется?

Другие вопросы по тегам