Pregunta

Estoy intentando eliminar una entidad (ForumTopic) y tienen que borrar los mensajes (ForoPon) dentro de ella. Aquí están mis entidades:

public class ForumTopic
{
    public virtual int TopicID { get; set; }
    public virtual IList<ForumPost> Posts { get; private set; }

    ...

    public ForumTopic()
    {
        Posts = new List<ForumPost>();
    }
}

public class ForumPost
{
    public virtual int PostID { get; set; }
    public virtual ForumTopic Topic { get; set; }

    ...
}

Con las siguientes asignaciones:

public ForumTopicMap()
{
    Table("ForumTopics");
    Id(x => x.TopicID);
    HasMany(x => x.Posts)
        .Cascade.All();

    ...
}

public ForumPostMap()
{
    Table("ForumPosts");
    Id(x => x.PostID);
    References(x => x.Topic, "TopicID");

    ...
}

Sin embargo, cuando i eliminar el tema de mi recibo el siguiente error:

[ForumTopic.Posts # 14] [SQL: ForumPosts actualización del conjunto TopicID = null DONDE TopicID = @ p0]

Esto parece extraño que pensé diciendo Cascade.All () (evento que intentó Cascade.Delete ()) en mi mapeo hasMany sería eliminar todos los mensajes de este tema. Te agradecería que si alguien podría mostrar lo que estoy haciendo mal. Gracias

¿Fue útil?

Solución

Trate de añadir Inverse() al mapeo hasMany.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top