Que sigue despues de los puntos suspensivos en System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) en NHibernate.Driver.NHybridDataReader.GetOrdinal(String name) en NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name).......... ?
Saludos Edgar El día 7 de julio de 2010 08:54, Mario <[email protected]> escribió: > Hola amigos, estoy desarrollando una apliaccion(Visual Studio 2008) de > 3 capas con nhibernate, cuando ejecuto un procedimiento en la base de > dastos(SqlServer 2005), funciona sin problemas( lo ejecuto tal cual lo > hace Nhibernate), pero lo corro a traves de mi apliación, y arroja > el siquiente error: > > NHibernate.ADOException: could not execute query > [ exec [sp_consumo] @nro_trabajad...@p0, @cod_empre...@p1, > @cod_plan...@p2 ] > Name:empRut - Value:123123123 Name:cod_empresa - Value:390 > Name:cod_planta - Value:360 > [SQL: exec [sp_consumo] @nro_trabajad...@p0, @cod_empre...@p1, > @cod_plan...@p2] ---> System.IndexOutOfRangeException: > fec_inicio_feriado > en System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String > fieldName) > en System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) > en NHibernate.Driver.NHybridDataReader.GetOrdinal(String name) > en NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String > name).......... > > Sucede aunque que quiera retornar toda la clase o solo un valor de es, > la tabla tiene mas campos de los que he mapeado. > > Cabe señalar que la base de datos ya existe y no puedo hacer cambios > en ella. > La clase y los mapeos son los siguientes: > > Clase C#: > > public partial class ConsumoTrabajador > { > private Int32 _nro_operacion; > private String _periodo; > private Decimal _num_dias_feriados; > private String _estado; > public ConsumoTrabajador() > { > > } > public virtual Int32 nro_operacion > { > get { return _nro_operacion; } > set { _nro_operacion = value; } > } > public virtual String periodo > { > get { return _periodo; } > set { _periodo = value; } > } > public virtual Decimal num_dias_feriados > { > get { return _num_dias_feriados; } > set { _num_dias_feriados = value; } > } > public virtual String estado > { > get { return _estado; } > set { _estado = value; } > } > } > } > > Mapeo de la clase: > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" schema="dbo" > namespace="XXX.XXX.Domain" assembly="XXX.XXX.Domain"> > <class name ="ConsumoTrabajador" table="movimient_frds"> > <id name="nro_operacion" column="nro_operacion" type > ="System.Int32"/> > <property name="periodo" column="fec_inicio_feriado" /> > <property name="num_dias_feriados" column="num_dias_feriados" /> > <property name="estado" column="cod_feriado_solici"/> > </class> > </hibernate-mapping> > > Mapeo de la Query: > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" schema="dbo" > namespace="ECR.Feriados.Domain" assembly="ECR.Feriados.Domain"> > <sql-query name="ConsumoTrabajadorbyRut" callable="true"> > <query-param name="nro_trabajador" type="System.Int32"/> > <query-param name="cod_empresa" type="System.Int32"/> > <query-param name="cod_planta" type="System.Int32"/> > <return class="ConsumoTrabajador"> > </return> > exec [sp_consumo] @nro_trabajador=:empRut, > @cod_empresa=:cod_empresa, @cod_planta=:cod_planta > </sql-query> > </hibernate-mapping> > > Asi ejecuto del Procedimiento Almacenado: > > PersistenceManager pesrt = new > PersistenceManager(PersistenceManager.SessionConexion.Sessionstring.ToString(), > cnxb); > > IQuery iquery = > pesrt.sesion.GetNamedQuery("ConsumoTrabajadorbyRut"); > iquery.SetParameter("empRut", > int.Parse(empRut.ToString())); > iquery.SetParameter("cod_empresa", > int.Parse(cod_empresa.ToString())); > iquery.SetParameter("cod_planta", > int.Parse(cod_planta.ToString())); > return iquery.List<ConsumoTrabajador>(); > > > > El error me parece que se genera al tratar de llenar el Objeto, pero > no se como solucionarlo. > > Espero me puedan ayudar he revisado en google durante un dia completo > y no en cuentro solucion. > > > Gracias. > > -- > 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
