Pregunta

Tengo una aplicación de 3 niveles: Primera capa: SQL DB. 2da capa: App Sever (dotnet) 3.a capa: cliente wpf inteligente.

Estoy usando NHibarnate (fluido) como fuente de datos para la capa del servidor de aplicaciones (Servidor de aplicaciones: la segunda capa habla con DB usando NH)

La capa de aplicación habla con el cliente usando WCF.

¿Me beneficia algo del uso de NH, ya que WCF no admite la carga diferida de NH (al menos no se ve así) y, si uso un objeto de sesión estático, tengo que hacer que el servidor sea una instancia única concurrencia: de lo contrario, las cosas se complican dentro de NH cuando se reciben más de una llamada al mismo tiempo. Si abro un objeto de sesión (NH) para cada llamada y lo cierro al final de la llamada, pierdo el caché NHibarante de primer nivel ...

Entonces, la pregunta es: ¿estoy implementando NH mal? ¿o no se supone que sea eficiente en mi tipo de proyecto?

¿Fue útil?

Solución

Es posible que desee consultar el uNhAddIns WCF project . Utiliza sesión por llamada, ya que esa es la forma recomendada de ir con WCF.

Tiene razón al decir que no hay carga diferida a través de WCF. Debe completar el gráfico de objetos al nivel que necesita y luego enviarlo en su camino. Si su capa de servicio no está orientada a objetos en el comportamiento, NHibernate puede ser excesivo. Esa es una decisión difícil sin mucho más contexto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top