Nhibernate 使用代码映射生成HBM文件
我通过代码使用NHibernate映射,并以以下方式创建会话工厂:Nhibernate 使用代码映射生成HBM文件,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我通过代码使用NHibernate映射,并以以下方式创建会话工厂: var mapper = new ModelMapper(); mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes()); HbmMapping domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
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();
var-mapper=newmodelmapper();
AddMappings(Assembly.getExecutionGassembly().GetExportedTypes());
HbmMapping domainMapping=mapper.CompileMappingForAllExplicitlyAddedEntities();
const bool executeScript=false;
var配置=新配置();
数据库集成(c=>
{
c、 方言();
c、 连接字符串=
ConfigurationManager.ConnectionString[“ShopConnectionString”]
.连接字符串;
c、 关键字sautoimport=Hbm2DDLKeyWords.AutoQuote;
});
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();
使用AsString()扩展方法:
domainMapping.AsString()
它将为您提供可以保存到文件中的xml。例如,您可以在构建SessionFactory之前调用该方法。谢谢,我将映射部分提取到一个新方法,该方法返回一个HbmMapping对象。所以我可以在单元测试中使用它并调用AsString。