替换测试的映射

本文关键字:映射 测试 替换 | 更新日期: 2023-09-27 18:14:53

我有我所有的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()之前替换一个实体映射。

替换测试的映射

手动遍历程序集的资源并添加除该资源外的所有资源。

如果你只是想改变一些细节,你可以得到该类型的类映射并改变值。

var mapping = config.GetMapping(typeof(myclass))//更改映射的详细信息