使用代码映射生成 HBM 文件

Be.*_*St. 3 nhibernate nhibernate-mapping

我正在通过代码使用 NHibernate 映射,并以这种方式创建会话工厂:

            var mapper = new ModelMapper();
        mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());

        HbmMapping domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();

        const bool executeScript = false;

        var configuration = new Configuration();
        configuration.DataBaseIntegration(c =>
                                              {
                                                  c.Dialect<MsSql2005Dialect>();
                                                  c.ConnectionString =
                                                      ConfigurationManager.ConnectionStrings["ShopConnectionString"]
                                                          .ConnectionString;
                                                  c.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
                                              });
        configuration.AddMapping(domainMapping);

         _sessionFactory = configuration.BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

我需要获取相应的HBM文件。

我怎样才能做到这一点?

Rip*_*ppo 6

两种方式:-

//This will write all the XML into the bin/mappings folder  
mapper.CompileMappingForEachExplicitlyAddedEntity().WriteAllXmlMapping();  
Run Code Online (Sandbox Code Playgroud)

请小心上面的方法,因为当您的 bin 文件夹中检测到更改时,您的 ASP.NET 应用程序将回收,另一种方法是:-

var mapping = mapper.CompileMappingForAllExplicitlyAddedEntities();  
//you could add a breakpoint here!   
var mappingXml = mapping.AsString();  
Run Code Online (Sandbox Code Playgroud)