Porque no haces lo que te dice Rodrigo, y si hace lo que necesitas investigate QueryOver con Joins ( http://nhforge.org/blogs/nhibernate/archive/2009/12/17/queryover-in-nh-3-0.aspx), para evitar un Select 1+N debido al LazyLoad... pero eso una vez que hayas entendido lo que estas haciendo.
Saludos, El 11 de marzo de 2011 16:36, Augusto Ferriz <[email protected]>escribió: > La imagen que viste es del DGV cuando lo consulto con el QueryOver a traves > de esta consulta: > > ObtenerPorUnidad = sesion.QueryOver<Ayudantia>().Where(x => x.Campus == > Ud).List(); > > Con esta consulta solo puedo sacar los datos del objeto Ayudantia por medio > del nombre del campus que se manda via la variable "Ud" > > Intentando hacer lo que me dices se me ocurrio hacer esta fumada... > > var ObtenerPorUnidad = sesion.QueryOver<Ayudantia>().Where(x => x.Campus == > Ud).Select(ay => ay.Alumnos.Matricula); > > return ObtenerPorUnidad.List<Ayudantia>(); > > > Pero me sale este error > > No se controló NHibernate.QueryException > Message="could not resolve property: Alumnos.Matricula of: > SAI.NH.BL.Ayudantia" > Source="NHibernate" > StackTrace: > en NHibernate.Persister.Entity.AbstractPropertyMapping.ToType(String > propertyName) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Persister\Entity\AbstractPropertyMapping.cs:línea > 42 > en NHibernate.Persister.Entity.AbstractEntityPersister.ToType(String > propertyName) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:línea > 1751 > en > NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetType(ICriteria > subcriteria, String propertyName) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Criteria\CriteriaQueryTranslator.cs:línea > 684 > en NHibernate.Criterion.PropertyProjection.GetTypes(ICriteria > criteria, ICriteriaQuery criteriaQuery) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Criterion\PropertyProjection.cs:línea > 51 > en NHibernate.Criterion.ProjectionList.GetTypes(ICriteria criteria, > ICriteriaQuery criteriaQuery) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Criterion\ProjectionList.cs:línea > 50 > en > NHibernate.Loader.Criteria.CriteriaQueryTranslator.get_ProjectedTypes() en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Criteria\CriteriaQueryTranslator.cs:línea > 221 > en > NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOuterJoinLoadable > persister, CriteriaQueryTranslator translator, ISessionFactoryImplementor > factory, ICriteria criteria, String rootEntityName, IDictionary`2 > enabledFilters) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Criteria\CriteriaJoinWalker.cs:línea > 43 > en > NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable > persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, > String rootEntityName, IDictionary`2 enabledFilters) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Criteria\CriteriaLoader.cs:línea > 39 > en NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList > results) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\SessionImpl.cs:línea 1892 > en NHibernate.Impl.CriteriaImpl.List(IList results) en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\CriteriaImpl.cs:línea 265 > en NHibernate.Impl.CriteriaImpl.List[T]() en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\CriteriaImpl.cs:línea 276 > en NHibernate.Criterion.QueryOver`1.List[U]() en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Criterion\QueryOver.cs:línea 62 > en > NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver<TRoot>.List[U]() en > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Criterion\QueryOver.cs:línea 201 > en SAI.NH.BL.RepositorioAyudantia.ObtenerAyudantiaPorCampus(String > Ud) en C:\Documents and Settings\augusto.ferriz\Mis documentos\Visual Studio > 2008\Projects\SAI\SAI.NH.BL\RepositorioAyudantia.cs:línea 69 > en SystemSAI.frmMenu.btnRECargarDatosUnidad_Click(Object sender, > EventArgs e) en C:\Documents and Settings\augusto.ferriz\Mis > documentos\Visual Studio 2008\Projects\SAI\SystemSAI\frmMenu.cs:línea 331 > en System.Windows.Forms.Control.OnClick(EventArgs e) > en System.Windows.Forms.Button.OnClick(EventArgs e) > en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) > en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons > button, Int32 clicks) > en System.Windows.Forms.Control.WndProc(Message& m) > en System.Windows.Forms.ButtonBase.WndProc(Message& m) > en System.Windows.Forms.Button.WndProc(Message& m) > en > System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) > en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& > m) > en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, > Int32 msg, IntPtr wparam, IntPtr lparam) > en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& > msg) > en > System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 > dwComponentID, Int32 reason, Int32 pvLoopData) > en > System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 > reason, ApplicationContext context) > en > System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, > ApplicationContext context) > en System.Windows.Forms.Application.Run(Form mainForm) > en SystemSAI.Program.Main() en C:\Documents and > Settings\augusto.ferriz\Mis documentos\Visual Studio > 2008\Projects\SAI\SystemSAI\Program.cs:línea 29 > en System.AppDomain._nExecuteAssembly(Assembly assembly, String[] > args) > en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence > assemblySecurity, String[] args) > en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() > en System.Threading.ThreadHelper.ThreadStart_Context(Object state) > en System.Threading.ExecutionContext.Run(ExecutionContext > executionContext, ContextCallback callback, Object state) > en System.Threading.ThreadHelper.ThreadStart() > InnerException: > > Como les digo, investigo e investigo... mi pregunta es, realmente es > posible > > Otra cosa que se me viene a la cabeza, es consultar la lista de ayudantia > meterla en un For Each y sacar un dato que pueda usarlo para consultar una > lista de alumnos y empatarla > pero no se como sacar los datos de una lista > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Saludos, Walter G. Poch Sr. .Net Developer -------------------------------------------- Cell: +54 (9 341) 3353273 [email protected] -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
