NHibernate简单删除让我疯狂

时间:2010-08-12 15:02:57

标签: nhibernate fluent-nhibernate cascading-deletes

我正在尝试删除一个实体(ForumTopic)并删除其中的帖子(ForumPost)。这是我的实体:

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

    ...
}

使用以下映射:

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

    ...
}

但是,当我删除我的主题时,我收到以下错误:

[ForumTopic.Posts#14] [SQL:UPDATE ForumPosts SET TopicID = null WHERE TopicID = @ p0]

这看起来很奇怪,因为我想在我的HasMany映射上说Cascade.All()(我的事件尝试了Cascade.Delete())它会删除这个主题的所有帖子。如果有人能告诉我我做错了什么,我会很感激。感谢

1 个答案:

答案 0 :(得分:0)

尝试将Inverse()添加到HasMany映射。