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