Оптимизация фабрики сеансов nhibernate, время запуска webApp очень медленное

У меня есть приложение для тестирования, которое использует свободное сопоставление nhibernate с объектом db внутри mssql db. Поскольку я хочу научиться тонкой настройке nhib.mvc3, я использую это приложение для целей тестирования, которое имеет только одну простую сущность с 10 свойствами перечисления и одним строковым свойством. Итак, это действительно лайтвейв, но время запуска согласно профилировщику nhibernate составляет 4,37 секунды. Что очень медленно для рендеринга одного объекта с несколькими строками проверенного/непроверенного свойства.

Код следующий. Domain.SessionProvider.cs

public static ISessionFactory CreateSessionFactory()
{
   var config = Fluently.Configure()
          .Database(MsSqlConfiguration.MsSql2008
          .ConnectionString(c => c.FromConnectionStringWithKey("myConnection")))
          .Mappings(m => m.FluentMappings.Add<FeaturesMap>())
          .ExposeConfiguration(p => p.SetProperty("current_session_context_class", "web"))
          .BuildConfiguration();

          return config.BuildSessionFactory();            
}

Global.asax

public class MvcApplication : System.Web.HttpApplication
{   
   //SessionPerWebRequest is ommited here as well as other content
   public static ISessionFactory SessionFactory =
               SessionProvider.CreateSessionFactory();

    protected void Application_Start()
    {
       SessionFactory.OpenSession();
    }
}

Внутри myController у меня есть следующее:

public ActionResult Index()
{
   return View(GetData());
}

private IList<FeaturesViewModel> GetData()
{
     List<Features> data;
     using (ISession session = MvcApplication.SessionFactory.GetCurrentSession())
     {
          using (ITransaction tx = session.BeginTransaction())
          {
              data = session.Query<Features>().Take(5).ToList();
              tx.Commit();

              var viewModelData = FeaturesViewModel.FromDomainModel(data);
              return viewModelData;
           }
      }
}
18
задан BobRock 26 May 2012 в 13:26
поделиться