Es debido a que nosotros las clase Nh no son nuestras entidades de negocio, de las Nh pasamos a las que usamos (ej: de NhUsuario pasamos a Usuario en el Transformer ). Es por que la base de datos ya existía cuando nos pusimos a hacer la aplicación Web.
El 30 de agosto de 2010 18:59, Fabio Maulo <[email protected]> escribió: > Hay algo que deberiamos conocer de lo que hace la clase > RepositorioDtoUsuarioLoginTransformer > ? > > Me resulta muy raro que uses un ResultTrasformer para un query que se > retorna una sola instancia (UniqueResult). > > 2010/8/30 NM <[email protected]> > > Buenas ya escribi anteriormente con problemas con nhibernate >> >> Esta función de vez en cuando me da el errro que se especifica debajo >> >> var session = >> NHibernateSession.Session(NHibernateSession.BBDD_OFITOUR); >> using (var transaction = session.BeginTransaction()) >> { >> usuario = session >> .CreateQuery(@" >> from NhUsuarioWeb U >> inner join fetch U.NivelAcceso >> inner join fetch U.Oficina O >> inner join fetch O.TipoClienteEstadistica >> inner join fetch U.Agente >> where U.UsuarioWeb = :login AND >> U.AccesoPermitido = 'S'") >> .SetParameter("login", login) >> .SetResultTransformer(new >> RepositorioDtoUsuarioLoginTransformer()) >> .UniqueResult<Usuario>(); >> >> transaction.Commit(); >> } >> >> >> System.InvalidOperationException: >> Ya hay un DataReader abierto asociado a este Command, debe cerrarlo >> primero. >> >> NHibernate.TransactionException: Begin failed with SQL exception ---> >> System.InvalidOperationException: Ya hay un DataReader abierto >> asociado a este Command, debe cerrarlo primero. >> en >> >> System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand >> command) >> en >> >> System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel >> iso, String transactionName) >> en >> >> System.Data.SqlClient.SqlInternalConnection.BeginTransaction(IsolationLevel >> iso) >> en >> System.Data.SqlClient.SqlConnection.BeginDbTransaction(IsolationLevel >> isolationLevel) >> en >> >> System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel >> isolationLevel) >> en NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel >> isolationLevel) >> --- Fin del seguimiento de la pila de la excepción interna --- >> en NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel >> isolationLevel) >> en NHibernate.Transaction.AdoTransaction.Begin() >> en NHibernate.Impl.SessionImpl.BeginTransaction() >> en >> >> Ofi.OfiTourWeb.Repository.RepositorioUsuarioNh.DameDtoUsuarioLoginPorLogin(String >> login) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Repository >> \RepositorioUsuarioNh.cs:línea 52 >> en >> >> Ofi.OfiTourWeb.Repository.RepositorioUsuario.DameDtoUsuarioLoginPorLogin(String >> login) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Repository >> \RepositorioUsuario.cs:línea 36 >> en >> >> Ofi.OfiTourWeb.Core.Services.ServicioLoginUsuario.DameUsuarioPorLogin(String >> loginUsuario) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Core\Services >> \ServicioLoginUsuario.cs:línea 115 >> en >> >> Ofi.OfiTourWeb.Web.Controllers.BuscarController.RellenaFiltroBusquedaConDatosUsuario(FiltroBusqueda >> filtroBusqueda) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web >> \Controllers\BuscarController.cs:línea 103 >> en >> >> Ofi.OfiTourWeb.Web.Controllers.BuscarController.ProcesarBusqueda(FiltroBusqueda >> filtroBusqueda) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web >> \Controllers\BuscarController.cs:línea 119 >> en >> >> Ofi.OfiTourWeb.Web.Controllers.BuscarController.Estancias(FiltroBusquedaEstancias >> filtroBusquedaEstancias) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web >> \Controllers\BuscarController.cs:línea 30 >> en lambda_method(Closure , ControllerBase , Object[] ) >> en System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase >> controller, Object[] parameters) >> en >> System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext >> controllerContext, IDictionary`2 parameters) >> en >> >> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext >> controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 >> parameters) >> en >> >> System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() >> en >> >> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter >> filter, ActionExecutingContext preContext, Func`1 continuation) >> en >> >> System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() >> en >> >> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext >> controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, >> IDictionary`2 parameters) >> en >> System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext >> controllerContext, String actionName) >> en System.Web.Mvc.Controller.ExecuteCore() >> en System.Web.Mvc.ControllerBase.Execute(RequestContext >> requestContext) >> en >> >> System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext >> requestContext) >> en >> System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__4() >> en >> >> System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() >> en >> >> System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult >> _) >> en >> System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() >> en System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult >> asyncResult) >> en >> >> System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult >> result) >> en >> >> System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() >> en System.Web.HttpApplication.ExecuteStep(IExecutionStep step, >> Boolean& completedSynchronously) >> >> >> Por favor necesito solucionar este problema ya, pero no encuentro la >> forma. >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano > > > > > -- > Fabio Maulo > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
