Pergunta

Estou tentando excluir uma entidade (fórumtopic) e excluir as postagens (forumpost) nela. Aqui estão minhas 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; }

    ...
}

Com os seguintes mapeamentos:

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");

    ...
}

No entanto, quando excluo meu tópico, recebo o seguinte erro:

Forumtopic.Posts#14] [SQL: UPDATE FORUMPOSTS SET TOPPSOID = NULL WHERE TOPPSOD = @P0

Isso parece estranho como eu pensei dizendo cascade.all () (eu tentei cascade.delete ()) no meu mapeamento Hasmany, ele excluiria todas as postagens para este tópico. Eu apreciaria se alguém pudesse me mostrar o que estou fazendo de errado. Obrigado

Foi útil?

Solução

Tente adicionar Inverse() para o mapeamento de Hasmany.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top