集成测试与nHibernate-构建配置和;BuildSessionFactory太慢了
我正在使用Fluent从程序集添加映射。这需要将近5秒的时间。然后,获取会话工厂还需要1.5分钟。是否需要从这个家伙那里获得一次编译后的输出,并将其序列化到磁盘:集成测试与nHibernate-构建配置和;BuildSessionFactory太慢了,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在使用Fluent从程序集添加映射。这需要将近5秒的时间。然后,获取会话工厂还需要1.5分钟。是否需要从这个家伙那里获得一次编译后的输出,并将其序列化到磁盘: Fluently.Configure(config) .Mappings(cfg => { cfg.FluentMappings.AddFromAssemblyOf<Entity>()
Fluently.Configure(config)
.Mappings(cfg =>
{
cfg.FluentMappings.AddFromAssemblyOf<Entity>()
.Conventions.Add(ForeignKey.EndsWith("Id"));
})
.BuildConfiguration();
fluent.Configure(配置)
.Mappings(cfg=>
{
cfg.FluentMappings.AddFromAssemblyOf()
.Conventions.Add(ForeignKey.EndsWith(“Id”));
})
.BuildConfiguration();
我们有大约15种型号。有没有更快的方法?我不介意必须手动管理一些缓存输出。对每个测试类进行6秒以上的惩罚是相当残酷的。序列化配置以供重用是可行的:
我只需从磁盘加载.hbm.xml文件,而不是从程序集中提取文件,就可以节省大约一秒钟的时间。我还没有接近我的.1秒目标…谢谢Jay。这帮了大忙。我想在构建会话工厂时没有任何提示?这是现在更大的痛点。奇怪的是,当我切换到序列化时,构建会话工厂所需的时间增加了大约四分之一秒。您是否在每个测试中初始化一个新的会话工厂?如果是这样,那么会话工厂是线程安全的,所以您应该能够在测试中共享它。我有一个会话工厂的静态实例,可以跨不同线程使用。