2009-06-04 8 views
0

Je mis à jour le pilote Npgsql à la dernière version (2.0.5) et a reçu l'erreur dans mes NHibernate App ... Mappages:Npgsql (1.0 -> 2,05) et a reçu l'erreur (ObjectNotFoundException) sur NHibernate

carte scolaire:

...

References(x => x.City); 

...

Et Ville cartographie:

Id(x => x.ID).GeneratedBy.Assigned(); 
Map(x => x.Name); 
References(x => x.Microrregion); 

Maintenant, quand j'ai essayé de charger une école, je me suis un NHibernate.ObjectNotFoundException pour objet Ville ... Mais avec Npgsql 1.0 tout fonctionne très bien ...

Toute idée?

Merci

Répondre

0

D'abord, êtes-vous positif que le City EXISTE? Pouvez-vous exécuter une requête SQL sur ces deux tables? En d'autres termes, SELECT * FROM School LEFT JOIN City ON School.City = City.Id WHERE School.Id = 12345 renvoie-t-il ce que vous attendiez?

Si c'est le cas, assurez-vous ensuite que NHibernate génère la requête à laquelle vous vous attendez. Vous pouvez définir l'exposition propriété SQL sur l'interface Fluent comme ceci:

PostgreSQLConfiguration 
    .Standard // Or whatever dialect you are using 
    .ConnectionString(...).ShowSql() 

Une fois que vous avez cet ensemble, NHibernate rédigera les requêtes qu'il exécute et il peut apparaître dans vos tests d'exploitation ou de l'unité ou autre, selon sur comment vous avez des choses d'installation.