Uygulama test uygulamasına sahibim. Hangi mssql db içinde db nesnesine akıcı nhibernate haritalama kullanır. İnce ayar dinlemeyi öğrenmek istediğimden beri. mvc3 uygulamaları, bu uygulamayı kullanıyorum. 10 enum özelliği ve bir dizgi özelliği ile sadece basit bir varlığa sahip olan test amaçları için. Yani, gerçekten hafif dalga, henüz nhibernate profiler göre başlangıç zamanı 4.37 sn. Birkaç satırda işaretli/işaretlenmemiş mülk olan bir varlığı oluşturmak için gerçekten yavaş olan.nhibernate oturumunun fabrika ayarlanması, webApp başlangıç zamanı gerçekten yavaş
Kod aşağıdaki gibidir. 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();
}
}
İçinde myController ben şu var:
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;
}
}
}
Başlangıç zamanı gerçekten bu kadar önemli mi? Uygun bir dağıtımda bu maliyet sıklıkla oluşmamalıdır. Web uygulamalarıyla ilgili – Lucero
. Bu lightwave öğesinin kullanıldığı bu başlangıç zamanının "bir şey" olduğunu düşünüyorum. Dağıtımını kontrol ettiğimi mi söylüyorsun? – BobRock
Diyorum ki, eğer bu durum her gün veya her birkaç günde bir dağıtılmış ortamda gerçekleşirse (uygulama havuzunuz geri dönüştürüldüğünde), bu maliyetin bir anlaşma olmadığıdır. – Lucero