Question

Nous utilisons SubSonic comme une sorte d'ORM (en réalité plus un assistant de requête).Pour une raison ou une autre, nous avons un schéma un peu dynamique et, en tant que tel, certaines tables ont généré des noms de colonnes, etc.Eh bien, tout s’est bien passé jusqu’à présent.Désormais, nos colonnes générées par la production ne correspondent pas à nos colonnes générées par le développement.La première solution qui m'est venue à l'esprit consiste simplement à régénérer les fichiers subsoniques avant de les déployer sur les serveurs de production, mais cela semble un peu compliqué.Existe-t-il un meilleur moyen que celui-ci ?

Notez que ces colonnes générées ne sont jamais réellement utilisées à partir de l'ORM, mais nous extrayons parfois des lignes entières en utilisant

var data=MyData.DynamicTable.SingleOrDefault(x => x.id==1);

Cela générerait une erreur en production en utilisant les fichiers subsoniques générés par le développement lors de la tentative de chargement. GeneratedColumn10 ou autre, qui existe en développement mais pas en production.

Était-ce utile?

La solution

En fait, j'ai fini par modifier le fournisseur SQLServer afin qu'il vérifie chaque nom de colonne par rapport à une expression régulière pour décider si la colonne doit être incluse ou non.Il est important de noter que vous devez faire cela pour les deux colonnes et pour l'endroit où les clés étrangères sont recherchées.

Autres conseils

Vous pouvez créer votre DAL sur la base de données de production et l'utiliser avec votre serveur de développement.À moins que vos colonnes supplémentaires dans l'environnement de développement ne soient pas nullables et qu'aucune valeur par défaut ne soit spécifiée, vos requêtes de mise à jour et d'insertion fonctionneront également.

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