我正在通过代码使用 NHibernate 映射,并以这种方式创建 session 工厂:
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();
我需要获取相应的 HBM 文件。
我怎样才能做到这一点?
最佳答案
两种方式:-
//This will write all the XML into the bin/mappings folder
mapper.CompileMappingForEachExplicitlyAddedEntity().WriteAllXmlMapping();
请注意上述方法,因为当在 bin 文件夹中检测到更改时,您的 asp.net 应用程序将回收,另一种方法是:-
var mapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
//you could add a breakpoint here!
var mappingXml = mapping.AsString();
关于nhibernate - 使用代码映射生成 HBM 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669128/