Si l'utilisation ActiveRecord, générer des modèles chaque je modifie la structure de base de données? [fermé]

StackOverflow https://stackoverflow.com/questions/4131981

Question

si elle est comme ça, je pense que des problèmes est tout.

Était-ce utile?

La solution

Qu'est-ce que plus de problèmes, une erreur de compilation parce que vous avez renommé une colonne ou une erreur de l'exécution « colonne xyz n'existe pas ».

Si vous voulez changer les classes générées par vous-même et sont préoccupés par vos modifications soient écrasées. Il existe trois façons d'apporter des modifications à la DAL générée.

  1. les classes SubSonic sont partielles.

    Si vous créez une autre classe dans le même espace de noms, vous pouvez ajouter des propriétés / méthodes et les membres de dérogation (de la classe de base).

  2. Modifier les modèles.

    En fonction de la version subsonique (2 ou 3) il existe différentes approaches comment générer le DAL. Mais ils partagent une même ASPX comme la syntaxe (2 = custom, 3 = moteur T4)

  3. Hériter des classes.

Vous pouvez créer vos propres classes qui héritent de ceux générés. (Je ne suggère de le faire si vous voulez utiliser le xyzCollection de SubSonic2.

Mise à jour: Le T4 (*) .tt modèles sont exécutés uniquement lorsque vous modifiez le fichier ou cliquez droit sur un fichier tt et choisissez « Run Custom Tool ». Pour subsonique, après un schéma que vous avez changé pour sélectionner « Exécuter outil personnalisé » pour chaque fichier tt que vous souhaitez mettre à jour (ActiveRecord.tt, Structs.tt, etc.). Cependant, T4 est un outil autonome qui peut être intégré facilement dans votre processus de construction:

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

Autres conseils

Si vous utilisez subsonique, le modèle est recréée à chaque fois que la base de données est modifiée (automatiquement si vous utilisez le fournisseur de construction ou manuellement si vous utilisez Subsonic.exe pour générer des classes).

Quel est le problème avec le fait que le modèle est régénéré?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top