2008-11-17 13 views
6

Jestem początkującym zarówno w zakresie WCF, jak i NHibernate. Muszę jednak zrobić mały projekt obejmujący kilka usług (wykonanych przy użyciu WCF) i warstwę trwałą (wykonaną przy pomocy NHibernate).WCF + NHibernate + ISession =?

Mój problem dotyczy użycia ISession i ISessionFactory. Przeczytałem (i widziałem), że tworzenie instancji ISessionFactory jest bardzo ciężkie (i wątkowo bezpieczne). Myślę więc, że mógłbym utworzyć instancję tej klasy tylko raz w czasie wykonywania aplikacji. Mam rację?

Mój problem dotyczy bardziej klasy ISession. Nie wiem dokładnie, z jaką szczegółowością muszę go używać. Myślę, że powinienem użyć/stworzyć jedną instancję dla każdego wezwania do obsługi usługi (używam "usług per-call"). Znowu mam rację?

+0

To jest mój post opisujący to http://stackoverflow.com/a/15451070/168048 – szkra

Odpowiedz

5

Jesteś na miejscu. Fabryka sesji jest kosztowna w budowie i dobrze nadaje się jako singleton, podczas gdy sesja jest bardziej lekkim obiektem kontekstualnym owijającym "jednostkę pracy".

Aby dowiedzieć się więcej, można przeczytać o zamkowym obiekcie WCF, który proponuje rozwiązanie tego problemu. Oto blog post, który ją eksploruje.

Powiązane problemy