Estimados la ayuda con el sql quedo perfecto y muchas gracias por eso, ahora
el detalle es que estoy haciendo la prueba en una BD Oracle 10g y me doy con
lo siguiente:

1. En oracle no se puede tener un campo que se autoincremente como en sql,
vi en algun blog que cree un secuencia y en el mapeo se indica el nombre de
la secuencia. Hasta ahi todo bien ya lo tengo mapeado segun lo que
investigue pero al ejecutar me sale el siguiente error al querer leer los
datos de configuracion:

ISessionFactory  factory= new
Configuration().Configure().BuildSessionFactory();

y me sale esto en el mapeo :

"Could not compile the mapping document:
NhbHelper.Entidades.Customer.hbm.xml"
"Could not find the dialect in the configuration"
Could not find the dialect in the configuration

Lo que no  entiendo es esto debido a que mi proyecto lo tengo en una unidad
E: y segun lo que me muestra el error me indica D y es la lectora de DVD.

 en NHibernate.Cfg.Configuration.LogAndThrow(Exception exception) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 342
   en NHibernate.Cfg.Configuration.AddDeserializedMapping(HbmMapping
mappingDocument, String documentFileName) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 530
   en NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument
doc) en d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea
499
   en NHibernate.Cfg.Configuration.ProcessMappingsQueue() en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 1832
   en NHibernate.Cfg.Configuration.AddDocumentThroughQueue(NamedXmlDocument
document) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 1823
   en NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader, String
name) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 1816
   en NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream,
String name) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 632
   en NHibernate.Cfg.Configuration.AddResource(String path, Assembly
assembly) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 670
   en NHibernate.Cfg.Configuration.AddAssembly(Assembly assembly) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 763
   en NHibernate.Cfg.Configuration.AddAssembly(String assemblyName) en
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:línea 746
   en NhbHelper.Inicio.Iniciar() en
E:\Asp\Otro\WebNuevo\ClassLibrary1\Inicio.cs:línea 28
   en WebNuevo._Default.Page_Load(Object sender, EventArgs e) en
E:\Asp\Otro\WebNuevo\WebNuevo\Default.aspx.cs:línea 16
   en System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object
o, Object t, EventArgs e)
   en System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,
EventArgs e)
   en System.Web.UI.Control.OnLoad(EventArgs e)
   en System.Web.UI.Control.LoadRecursive()
   en System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


El mapeo es el siguiente:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"  assembly="NhbHelper"
namespace="NhbHelper.Entidades">
  <class name="Customer" table="Customer">
    <id name="CUSTOMER_ID" column="CUSTOMER_ID" type="Int32" >
      <generator class="seqhilo" ><param
name="sequence">SEQ_CUSTOMER_ID</param></generator>
    </id>
    <property name="CUSTOMER_DESC" type="String" />
    <property name="CUSTOMER_ABREV" type="String" />
    <property name="CUSTOMER_TIPO_CULTIVO" type="String" />
  </class>
</hibernate-mapping>

la Entidad es :


namespace NhbHelper.Entidades
{
    public class Customer
    {
        private Int32 id;
        private string desc;
        private string abrev;
        private string tipo;

        public virtual Int32 CUSTOMER_ID
        {
            get { return id; }
            set { id = value; }
        }
        public virtual string CUSTOMER_DESC
        {
            get { return desc; }
            set { desc = value; }
        }
        public virtual string CUSTOMER_ABREV
        {
            get { return abrev; }
            set { abrev = value; }
        }
        public virtual string CUSTOMER_TIPO_CULTIVO
        {
            get { return tipo; }
            set { tipo = value; }
        }
        public static IList<Customer> GetTodos()
        {
            IQuery qry = Inicio.GetSessionActual().CreateQuery(" From
Customer c order by c.CUSTOMER_ID ");
            return qry.List<Customer>();
        }
    }
}


y mi XML del nhibernate ( version 3.1 ) esta configurado asi:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property
name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect"> NHibernate.Dialect.Oracle10gDialect</property>
    <property
name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver
</property>
    <property name="connection.connection_string">
      User Id=XXXXXXX;
      Password=XXXXXX;
      Data Source=XXXXXXXXX;
    </property>
    <property name="show_sql">
      true
    </property>
    <mapping assembly="NhbHelper"/>
  </session-factory>
</hibernate-configuration>

Saludos y gracias.

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a