Yes,

If you break on sis.Delete and inspect the two objects, you will see:

Object sis with a zero count list Suscriptor, it has no knowledge of its
children in memory from the way you have created them - so when the delete
occurs it will not cascade to the child.

Try

            Asistema sis = new Asistema();
            Suscriptor sus = new Suscriptor();
           Sis.Suscriptor.Add(sus);
            sis.Create(); // This will cascade the Insert to the child.

            sis.Delete(); // This will cascade the Delete to the child now,
as the object sis is aware it has a child.

Regards
Nick

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of oreo
Sent: 20 October 2010 02:56 PM
To: Castle Project Users
Subject: Re: error cascade delete

[ActiveRecord]
    class Asistema : ActiveRecordBase<Asistema>
    {
        private int id;
        private IList<Suscriptor> suscriptores = new List<Suscriptor>();

        public Asistema()
        {
        }

        [PrimaryKey]
        public virtual int Id
        {
            get { return id; }
            set { id = value; }
        }

        [HasMany(Inverse=true, Cascade =
ManyRelationCascadeEnum.AllDeleteOrphan)]
        public virtual IList<Suscriptor> Suscriptores
        {
            get { return suscriptores; }
            set { suscriptores = value; }
        }
    }


    [ActiveRecord]
    class Suscriptor : ActiveRecordBase<Suscriptor>
    {
        private int id;
        private Asistema asistema;

        public Suscriptor()
        {
        }

        public Suscriptor(Asistema asistema)
        {
            this.asistema = asistema;
        }


        [PrimaryKey]
        public virtual int Id
        {
            get { return id; }
            set { id = value; }
        }

        [BelongsTo("asistemaid")]
        public virtual Asistema Asistema
        {
            get { return asistema; }
            set { asistema = value; }
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            IConfigurationSource config =
ActiveRecordSectionHandler.Instance;
            ActiveRecordStarter.Initialize(config,
typeof(Suscriptor),typeof(Asistema));
            ActiveRecordStarter.CreateSchema();

            Asistema sis = new Asistema();
            sis.Create();
            Suscriptor sus = new Suscriptor(sis);
            sus.Create();

            sis.Delete();//Error

        }
    }

DELETE statement conflicted with the REFERENCE constraint
"FK58D3BC2B7EE8DAF." The conflict has appeared in the database "NHibernate"
"NHibernate", table "dbo.Suscriptor", column 'asistemaid'. Statement has
been terminated.

If you do not call the delete method, the schema is created perfectly, as
well as all tables



On 20 oct, 14:44, Nicholas Kilian <[email protected]>
wrote:
> Bueno, pero ¿cuál sería?¿Cuál es la estructura real de la tabla?
>
> Definitivamente hay una columna en la tabla id_sistema Suscriptor que es
un extranjeroclave para algo, las instrucciones CREATE para las tablas nos
ayudará un pocomás.
>
>
>
>
>
>
>
> ----- Mensaje original -----De: [email protected]
>
> [Mailto: [email protected]] En nombre de 
> oreoEnviado el: 20 de octubre 2010 14:41Para: Castillo de los usuarios 
> del proyectoAsunto: Re: error de eliminar en cascada
>
> pizca
>
> [Pertenece a ("id_sistema")]        pública virtual Sistema Sistema       

> {            Sistema get {return;}            conjunto {Sistema = 
> valor;}        }el error es el mismo
>
> El 20 de oct, 14:34, Nicolás Kilian <nicholaskil...@
googlemail.com>escribió:> El nombre de la columna que usó en su asignación,
y le devolvió el nombre de la columna> El error no son lo mismo ...
>
> 'Id_sistema' columna> vs [Pertenece a ("Id_Sistema")]
>
> > ----- Mensaje original -----> De: 
> > [email protected]
>
> > [Mailto: [email protected]] En nombre de oreo> 
> > Enviado el: 20 de octubre 2010 14:28> Para: Castillo de los usuarios 
> > del proyecto> Asunto: error de eliminar en cascada: Re
>
> > En20Record.Mappings.ashxsays% http://stw.castleproject.org/Active:
>
> > Si es necesario eliminar objetos secundarios al eliminar uno de los
padres (por ejemplo, cuandoBlog.Delete> llamando al () también debe eliminar
todos los registros relacionados de Correos de> La base de datos), puede
especificar inversa = true.
>
> > También probé sin inversa y no funciona
>
> > El 20 de oct, 14:17, Nicolás Kilian nicholaskil <...googlemail.com> @>
Escribió:>> ¿Por qué se establece inversa = True en público virtual
<Suscriptor> IList>> Suscriptores?
>
> >> ----- Mensaje original ----->> De: 
> >> [email protected]
>
> >> [Mailto: [email protected]] En nombre de oreo>> 
> >> Enviado el: 20 de octubre 2010 13:45>> Para: Los usuarios Castillo 
> >> de Proyecto>> Asunto: error de eliminar en cascada: Re
>
> >> Quiero eliminar un padre, y por lo tanto todos sus hijos.
>
> >> El 20 de oct, 13:35 Patrick Steele <patrick.ste...gmail.com> @
escribió:>>> Si desea que el padre (y todos los niños) borró cuando una
sola>> Infantil> se elimina, simplemente llame a su eliminación en los
padres (en lugar de>>> Llamando eliminar en el niño):
>
> >>> Child.Sistema.Delete ();
>
> >>> --->>> Patricia Steelehttp://weblogs.asp.net/psteele
>
> >>> On Wed, Oct 20, 2010 a las 6:59, oreo <jesu.drui...@ gmail.com>
escribió:>>>> Hola.Lo siento por mi Inglés.>>>> Tengo un uno a muchos, y
quiero eliminar a los padres cuando la>>> Infantil> se elimina.
>
> >>>> Cuando intento eliminar un padre sale el siguiente error:
>
> >>>> DELETE en conflicto con la restricción REFERENCIA>>>>
"FK58D3BC2BC5838F81".El conflicto ha aparecido en la base de datos>>>>
"NHibernate" mesa "dbo.Suscriptor", "id_sistema 'columna.>>>> Ha finalizado
la instrucción.
>
> >>>> [ActiveRecord]>>>> Sistema de clase: ActiveRecordBase 
> >>>> <Sistema>>>>> {>>>> Private int id;
>
> >>>> Privada IList <Suscriptor> suscriptores = new>>>> <Suscriptor> 
> >>>> Lista ();
>
> >>>> Sistema pública ()>>>> {>>>>}
>
> >>>> [PrimaryKey ("Id_Sistema")]>>>> Public int Id virtuales>>>> {>>>> 
> >>>> Get {return id;}>>>> Set {id = valor;}>>>>}
>
> >>>> [HasMany (Cascade =>>>> 
> >>>> ManyRelationCascadeEnum.AllDeleteOrphan,>>>> Invertir = 
> >>>> true)]>>>> Público virtual IList <Suscriptor> Suscriptores>>>> 
> >>>> {>>>> Obtener suscriptores {return;}>>>> Conjunto {valor = 
> >>>> suscriptores;}>>>>}>>>>}
>
> >>>> [ActiveRecord]>>>> Clase Suscriptor: ActiveRecordBase 
> >>>> <Suscriptor>>>>> {>>>> Private int id;>>>> Sistema Sistema 
> >>>> privado;
>
> >>>> Públicas Suscriptor ()>>>> {>>>>}
>
> >>>> [PrimaryKey]>>>> Public int Id virtuales>>>> {>>>> Get {return 
> >>>> id;}>>>> Set {id = valor;}>>>>}
>
> >>>> [Pertenece a ("Id_Sistema")]>>>> Público virtual Sistema 
> >>>> Sistema>>>> {>>>> Sistema get {return;}>>>> Conjunto {Sistema = 
> >>>> valor;}>>>>}>>>>}
>
> >>>> Gracias
>
> >>>> ->>>> Has recibido este mensaje porque estás suscrito a la>>>>
Google>> Grupos "Castillo de los usuarios del proyecto" del grupo.>>>> Para
publicar en este grupo, envía un correo electrónico a>>
[email protected].>>>> Para anular la suscripción a este
grupo, envía un correo electrónico a>> Castillo-proyecto-es +
[email protected].>>>> Para obtener más opciones, visita este
grupo>> Enhttp://groups.google.com/group/castle-project-users?hl=en.
>
> >> ->> Has recibido este mensaje porque estás suscrito a Google>> Grupos
"Castillo de los usuarios del proyecto" del grupo.>> Para publicar en este
grupo, envía un correo electrónico a>
[email protected].>> Para anular la suscripción a este
grupo, envía un correo electrónico a>> Castillo-proyecto-es +
[email protected].>> Para obtener más opciones, visita este
grupo> Enhttp://groups.google.com/group/castle-project-users?hl=en.
>
> > -> Has recibido este mensaje porque estás suscrito a Google> Grupos de
"Castillo de los usuarios del proyecto" del grupo.> Si quieres publicar en
este grupo, envía un correo electrónico
[email protected].> Para anular la suscripción a este
grupo, envía un correo electrónico a> Castillo-proyecto-es +
[email protected].> Para obtener más opciones, visita este
grupoenhttp://groups.google.com/group/castle-project-users?hl=en.
>
> -Has recibido este mensaje porque estás suscrito a los Grupos de
Google"Castillo de los usuarios del proyecto" del grupo.Para publicar en
este grupo, envía un correo electrónico a
[email protected] anular la suscripción a este
grupo, envía un correo electrónico acastillo-proyecto-es +
[email protected] obtener más opciones, visita este grupo
enhttp://groups.google.com/group/castle-project-users?hl=en.

--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to