J'ai des problèmes avec Fluent nHibernate. J'ai ajouté une colonne à une table et j'ai pensé que j'avais correctement changé les mappages et les objets de données connectés pour refléter cela correctement. Cependant, quand j'ai essayé de courir à nouveau ma demande, je continuais à obtenir cette erreur:Comment déboguer Fluent nHibernate
System.Data.SqlClient.SqlException: Invalid column name 'Workflow_id'.
je ne pouvais vraiment pas voir quel était le problème avec les changements que j'avais fait donc je revins revenir aux versions originales de la cartographie et les fichiers d'objet de données du contrôle de source et supprimé la colonne incriminée de la base de données. Mais je reçois toujours la même erreur.
Je voudrais des conseils sur la façon de déboguer cela. Le SQL qui obtient un rapport sur l'erreur est semi-absurde:
SELECT regions0_.Page_id as Page5_1_, regions0_.Id as Id1_, regions0_.Id as Id27_0_, regions0_.RegionId as RegionId27_0_, regions0_.RegionTemplate_id as RegionTe3_27_0_, regions0_.Workflow_id as Workflow4_27_0_ FROM [Region] regions0_ WHERE regions0_.Page_id=?
Et il ne sera pas exécuté comme valide SQL de toute façon.
Des idées sur où aller?
Merci pour votre réponse - il y a beaucoup de choses utiles là-dedans. Cependant, il semble que la racine du problème soit beaucoup plus simple - il semble que nHibernate met en cache beaucoup de choses sur le serveur web, ce que je ne savais pas - je suppose qu'il a reconstruit toute sa structure sous-jacente à chaque fois. Arrêter/démarrer l'instance du serveur a résolu le problème sans modifier le code. –
Nous avons également un unittest qui crée la base de données sur le serveur CI avant d'exécuter les unites, un autre pour le déploiement qui crée une base de données avec des données fictives pour le test manuel. Également d'autres personnes unittest nous disent si la base de données correspond aux mappages – isuruceanu