Sorry, ConForm no, mapping by code

2012/8/20 Daniel Calvin <[email protected]>

> Hola gente, me estoy enredando con esto, tal vez me puedan dan una mano:
> ( Me faltan horas de vuelo con NH )
>
> Tengo que escribir los Mapping para las Clases Clasificacion,y otras que
> son sub clases de TreeEntiy<T> vean mas abajo...
>
> // Esto es la base de lo que necesito mapear y aca no problem
>     public class Entity
>     {
>         public virtual int Id { get; set; }
>     }
>
>     public class EntityMapping<T> : ClassMapping<T> where T : Entity
>     {
>         public EntityMapping()
>         {
>             Id(x => x.Id, m => m.Generator(Generators.HighLow));
>         }
>
>     }
>
> // Clase base de la Clase que quiero persistir con NH
> public abstract class TreeEntiy<T> : Entity where T : TreeEntiy<T>
>     {
>         public virtual void AddBranch( T branch)
>         {
>             if(_branchs==null)_branchs=new List<T>();
>             _branchs.Add(branch);
>             branch.Trunk = this as T;
>         }
>
>         public T Trunk { get; protected set; }
>
>         private List<T>_branchs=new List<T>();
>         public virtual T[]  Branchs{get { return _branchs.ToArray(); }}
>
>     }
> // Clase que quiero persistir con NH
>     public class Clasificacion : TreeEntiy<Clasificacion>
>     {
>         public virtual String Denominacion { get; set; }
>     }
>
> // Algun  Test de las clase base en verde
>     [TestFixture]
>     public class TreeEntityTest
>     {
>
>         [Test]
>         public void TreeEntityBuildTest()
>         {
>             var mt = new MyTreeEntity{Name = "Trunk"};
>             mt.AddBranch(new MyTreeEntity { Name = "Trunk/Raiz 0" });
>             mt.AddBranch(new MyTreeEntity { Name = "Trunk/Raiz 1" });
>             mt.AddBranch(new MyTreeEntity { Name = "Trunk/Raiz 2" });
>
>             Assert.AreEqual(3, mt.Branchs.Length);
>             foreach( var branch in mt.Branchs)
>             {
>                 Assert.AreEqual(0,branch.Branchs.Length);
>                 Assert.AreEqual(mt, branch.Trunk);
>                 Assert.AreEqual(mt.Name, branch.Trunk.Name);
>             }
>
>             var tr3 = mt.Branchs[1];
>             Assert.AreEqual("Trunk/Raiz 1", tr3.Name);
>             tr3.AddBranch(new MyTreeEntity { Name = "Trunk/Raiz 1/Raiz 0"
> });
>             Assert.AreEqual("Trunk/Raiz 1/Raiz
> 0",mt.Branchs[1].Branchs[0].Name);
>
>         }
>
>     }
>
>     internal class MyTreeEntity : TreeEntiy<MyTreeEntity>
>     {
>         internal string Name { get; set; }
>     }
>
> Mil gracias
>
> --
> *Daniel A. Calvin*
> Cooperator Team Member
>
>
>


-- 
*Daniel A. Calvin*
Cooperator Team Member

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