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