Genera mappature XML da fluente Nibernato

Come posso generare file di mapping xml come parte dei miei test in MappingIntegrationTests

Devo controllare manualmente se i mapping fluenti sono correlati ai mapping nel progetto leagcy.

Puoi fare qualcosa come:

config.Mappings(m => { m.FluentMappings.ExportTo("...file path here..."); m.HbmMappings.ExportTo("...file path here..."); m.AutoMappings.ExportTo("...file path here..."); { ); 

Non mi piace da solo. Se trovo un modo migliore (se tale esiste del tutto) aggiornerò la risposta.

Vedere
http://blog.jagregory.com/2009/02/03/fluent-nhibernate-configuring-your-application/
O se rotto, vedi questo invece
https://github.com/jagregory/fluent-nhibernate/wiki/Database-configuration

Si generano mapping XML chiamando il metodo ExportTo ().

Per esempio:

 ISessionFactory sessionFactory = FluentNHibernate.Cfg.Fluently.Configure() .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008 .ConnectionString(connectionString) ) .Mappings(m => m.FluentMappings.AddFromAssembly(assembly) .ExportTo(@"C:\your\export\path") ) .BuildSessionFactory(); 

Vedi qui per la documentazione:

http://wiki.fluentnhibernate.org/Fluent_configuration

Uso (quasi) questo metodo di estensione per ottenere xbm in memoria, così posso visualizzarlo nel mio progetto di test:

  public static IDictionary LoadHBM(this FluentConfiguration cfg) { var result = new Dictionary(); var mem = new MemoryStream(); var writer = new StreamWriter(mem); var reader = new StreamReader(mem); cfg.Mappings(x => { x.FluentMappings.ExportTo(writer); x.AutoMappings.ExportTo(writer); }); cfg.BuildConfiguration(); writer.Flush(); mem.Seek(0, 0); var hbm = reader.ReadToEnd(); var objects = XElement.Parse("" + hbm + "").Elements(); objects.ToList().ForEach(x => result.Add(x.Elements().First().Attribute("name").Value, x.ToString())); return result; } 

Modifica: aggiornato per FNH 1.2.