Si, no tuve en cuenta que en el documento "version" venía después de
"discriminator" y antes de "property". Pensé que dentro de "class"  en el
archivo de mapeo no importaba el orden.

Gracias por la ayuda.

Saludos.

El 1 de marzo de 2011 16:02, Fabio Maulo <[email protected]> escribió:

> te paso el link... en el PDF está escrito lo mismo ya que ambos se generan
> a partir del mismo fuente
> http://nhforge.org/doc/nh/en/index.html#mapping-declaration-xmlns
>
>
> 2011/3/1 Bruno Reato <[email protected]>
>
>> Gracias José por la pronta respuesta.  Si, definitivamente va después del
>> atributo "id", jamás lo hubiese encontrado al error, jejeje. Estuve leyendo
>> el pdf nhibernate_reference.pdf pero no encontré que diga nada acerca de
>> eso.  Te cuento que estoy realizando las pruebas en Monodevelop, y coloqué
>> los xsd en el lugar correspondiente para tener intellisense pero me deja
>> colocar el atributo "version" en cualquier posición.  Lo voy a probar en VS
>> para ver si es un error de Monodevelop ó del xsd.
>>
>> Saludos.
>>
>> El 1 de marzo de 2011 15:41, José F. Romaniello 
>> <[email protected]>escribió:
>>
>> Bruno, creo que el atributo "version" va inmediatamente despues del ID.
>>> Te recomiendo poner los XSD que estan en el zip de nhibernate en la
>>> carpeta:
>>> C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas
>>>
>>> para tener intellisense en los archivos xml, y darte cuenta más rapido de
>>> los errores.
>>> hay otros que usan otra técnica que es poner los xsd en la carpeta de
>>> librerías de tu solución y apuntar los xmls ahí... pero a mi me parece mas
>>> simple lo que te dije antes :)
>>>
>>> 2011/3/1 Bruno Reato <[email protected]>
>>>
>>>>  Hola a todos, estoy intentando mapear una entidad sencilla y agregarle
>>>> el control de concurrencia a través de un campo DateTime, la clase tiene
>>>> esta estructura:
>>>>
>>>> // AbstractEntity.cs
>>>> namespace ModelNH
>>>> {
>>>> public class AbstractEntity<TId>
>>>> {
>>>> public virtual TId Id { get; protected set; }
>>>>  public override bool Equals(object obj)
>>>> {
>>>> return Equals(obj as AbstractEntity<TId>);
>>>>  }
>>>>
>>>> private static bool IsTransient(AbstractEntity<TId> obj)
>>>>  {
>>>> return obj != null && Equals(obj.Id, default(TId));
>>>> }
>>>>
>>>> private Type GetUnproxiedType()
>>>> {
>>>> return GetType();
>>>>  }
>>>>  public virtual bool Equals(AbstractEntity<TId> other)
>>>>  {
>>>> if (other == null)
>>>> return false;
>>>>  if (ReferenceEquals(this, other))
>>>> return true;
>>>>  if (!IsTransient(this) && !IsTransient(other) && Equals(Id, other.Id))
>>>>  {
>>>> var otherType = other.GetUnproxiedType();
>>>> var thisType = GetUnproxiedType();
>>>>  return thisType.IsAssignableFrom(otherType) ||
>>>> otherType.IsAssignableFrom(thisType);
>>>> }
>>>>  return false;
>>>> }
>>>>  public override int GetHashCode()
>>>> {
>>>>  if (Equals(Id, default(TId)))
>>>> return base.GetHashCode();
>>>>  return Id.GetHashCode();
>>>> }
>>>> }
>>>> }
>>>>
>>>>
>>>> // Entity.cs
>>>> namespace ModelNH
>>>> {
>>>> public class Entity: AbstractEntity<int>
>>>> {
>>>> public Entity(){}
>>>> }
>>>> }
>>>>
>>>> // TestEntity.cs
>>>> namespace ModelNH
>>>> {
>>>> public class TestEntity: Entity
>>>> {
>>>> public virtual String Name { get; set; }
>>>>  public virtual DateTime LastUpdated { get; set; }
>>>> }
>>>> }
>>>>
>>>> y el archivo de mapeo:
>>>> <!-- mappings/TestEntity.hbm.xml -->
>>>> <?xml version="1.0"?>
>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="ModelNH"
>>>> namespace="ModelNH">
>>>> <class name="TestEntity" table="TEST">
>>>>  <id name="Id" column="TEST_ID" type="int">
>>>> <generator class="sequence">
>>>>  <param name="sequence">GEN_TEST_ID</param>
>>>> </generator>
>>>>  </id>
>>>> <property name="Name" column="NAME" type="String" />
>>>>  <version name="LastUpdated" column="LAST_UPDATED" type="timestamp" />
>>>>  </class>
>>>> </hibernate-mapping>
>>>>
>>>> Y el programa de consola:
>>>>
>>>> //Program.cs
>>>>
>>>> using System;
>>>> using NHibernate;
>>>> using NHibernate.Cfg;
>>>> using System.Data;
>>>> using ModelNH;
>>>> using System.IO;
>>>> using NHibernate.Linq;
>>>>
>>>> namespace PruebaNHibernate
>>>> {
>>>> class Program
>>>> {
>>>>  private static ISessionFactory factory;
>>>> private static ISession sess;
>>>>   public static void Main(string[] args)
>>>> {
>>>> try{
>>>>  Configuration cfg = new Configuration().Configure();
>>>> cfg.AddDirectory(new DirectoryInfo(@".\mappings"));
>>>>  factory = cfg.BuildSessionFactory();
>>>>  using(sess = factory.OpenSession()){
>>>> var tests = sess.Query<TestEntity>();
>>>>  tests.ForEach(t => Console.WriteLine(t.Name));
>>>> }
>>>>  }catch(Exception e){
>>>> Console.WriteLine(e.Message);
>>>> }
>>>>  Console.Write("Press any key to continue . . . ");
>>>> Console.ReadKey(true);
>>>>  }
>>>> }
>>>> }
>>>>
>>>> Estoy utilizando NHibernate 3.0.0.4000 y me conecto a una DB Firebird
>>>> (aunque no creo que ésto último influye en el error). Cuando ejecuto el
>>>> programa obtengo la excepción:
>>>>
>>>> G:\Projects\ModelNH\PruebaNHibernate\bin\Debug\mappings\TestEntity.hbm.xml(10,4):
>>>> XML validation error: El elemento 'class' en espacio de nombres
>>>> 'urn:nhibernate-mapping-2.2' tiene un elemento secundario 'version' en
>>>> espacio de nombres 'urn:nhibernate-mapping-2.2' no válido. Lista esperada 
>>>> de
>>>> elementos posibles: 'property, many-to-one, one-to-one, component,
>>>> dynamic-component, properties, any, map, set, list, bag, idbag, array,
>>>> primitive-array, join, subclass, joined-subclass, union-subclass, loader,
>>>> sql-insert, sql-update, sql-delete, filter, resultset, query, sql-query' en
>>>> espacio de nombres 'urn:nhibernate-mapping-2.2'.
>>>>
>>>> Press any key to continue . . .
>>>>
>>>> Saludos.
>>>>
>>>> Bruno.
>>>>
>>>> --
>>>> 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
>>
>>
>>  --
>> 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
>

-- 
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