我读到nHibernate中配置的初始加载时间可能相当长,具体取决于映射表的数量等。
这样做一次并存储在会话或缓存中吗? 每次ASP.NET进程回收时都会发生吗?
答案 0 :(得分:2)
Configuration对象通常与ISessionFactory相关联。如果你有很多映射(通过调用cfg.BuildSessionFactory),会话工厂可能会很慢。这就是为什么你只需要构建一次会话工厂并在整个应用程序中使用它。在进程回收的ASP.NET应用程序中,您将丢失对此会话工厂的引用,并且需要重新构建它。
如果您发现构建会话工厂的速度非常慢,则可以通过禁用反射优化器来提高性能:Environment.UseReflectionOptimizer = false(cf doc)
答案 1 :(得分:0)
Configuration
用于构建ISessionFactory
。这是一次性的交易 - 将在应用程序启动时发生。