One Session Factory per la durata di un'applicazione o una Session Factory per unità di lavoro?

0

Vedi il codice qui sotto, che crea una Session Factory per Unit Of Work:

public int Update(IdentityRoleView role)
        {
           var role2 = AutoMapper.Mapper.Map<IdentityRole>(role);

            ISessionFactory SessionFactory = NHConfiguration.BuildSessionFactory();
            using (ISession session = SessionFactory.OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Update(role2);
                transaction.Commit();
            }
            return 1;
        }

Recentemente è stato criticato perché significa che SessionFactory viene creato per ogni unità di lavoro e questo è costoso. Con NHibernate; dovresti creare una SessionFactory per la durata dell'applicazione in una variabile statica?

    
posta w0051977 08.10.2017 - 14:33
fonte

1 risposta

2

Sì, sarebbe meglio avere una singola SessionFactory per l'intera durata della tua applicazione, tipicamente creata nel metodo ApplicationStart. SessionFactory è un oggetto molto pesante. È anche thread-safe quindi non preoccuparti.

Vedi il documento ufficiale sul link o a link

    
risposta data 08.10.2017 - 14:49
fonte

Leggi altre domande sui tag