我将所有NHibernate放在一个程序集中,并且该程序集被加载到我的应用程序的NHibernate会话中,并且效果很好。对于我的测试项目,虽然我需要替换我的一个实体映射文件与另一个。我怎样才能做到这一点?我尝试加载程序集的映射,然后添加我想要替换的那个,但这给了我一个错误。
这是我的映射代码:
Configuration _configuration = new Configuration()
.SetProperty(Environment.ReleaseConnections, "on_close")
.SetProperty(Environment.Dialect, typeof (SQLiteDialect).AssemblyQualifiedName)
.SetProperty(Environment.ConnectionDriver, typeof (SQLite20Driver).AssemblyQualifiedName)
.SetProperty(Environment.ConnectionString, "data source=:memory:")
.SetProperty(Environment.ProxyFactoryFactoryClass,
"NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle")
.AddAssembly(assemblyContainingMapping);
_sessionFactory = _configuration.BuildSessionFactory();
我想在调用BuildSessionFactory()之前替换一个实体映射。
答案 0 :(得分:1)
手动循环遍历程序集的资源,并添加除该程序之外的所有资源。
如果您只想更改某些细节,可以获取该类型的类映射并更改值。
var mapping = config.GetMapping(typeof(myclass)) //更改映射的详细信息