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
