hbm2ddl.keywords

Versioni utilizzate:

  • Debian 4.0/Ubuntu 9.10
  • NHibernate 2.1.1.400
  • Postgres 8.3
  • .NET/Mono 2.4.4/2.6.4/2.7

Recentemente ho migrato una applicazione da NHibernate 1.2 alla più recente 2.1.2. Dopo un rapido refactoring per rinominare il necessario e rispettare i nuovi namespace mi sono imbatutto nel seguente errore:

System.InvalidCastException: Cannot cast from source type to destination type.
 at NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare () [0x00000] in <filename unknown>:0
 at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords (NHibernate.Dialect.Dialect dialect, IConnectionHelper connectionHelper) [0x00000] in <filename unknown>:0
 at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update (ISessionFactory sessionFactory) [0x00000] in <filename unknown>:0
 at NHibernate.Impl.SessionFactoryImpl..ctor (NHibernate.Cfg.Configuration cfg, IMapping mapping, NHibernate.Cfg.Settings settings, NHibernate.Event.EventListeners listeners) [0x00000] in <filename unknown>:0
 at NHibernate.Cfg.Configuration.BuildSessionFactory () [0x00000] in <filename unknown>:0
 [...]

Le righe inferiori dello stack fanno riferimento al codice non-NHibernate, la prima di queste punta alla riga dove viene tirata su la Session dalla SessionFactory(). Dopo un po' di mezz'ore a controllare e ricontrollare (e a rileggere le note di rilascio) ho cercato su San Google ed ho trovato che è un tipo errore causato dall'errata impostazione della proprietà hbm2ddl.

L'autoquoting pare non piacere in qualche modo. Impostando la proprietà a none l'errore non viene più sollevato.

Stampato da: http://lupulu.li/2010/06/hbm2ddl-keywords/ .
© Your Name Here 2010.

Invia un commento

  • Archivi

  • Libri@aNobii