NHibernate Простой Удалить сводит меня с ума - PullRequest
0 голосов
/ 12 августа 2010

Я пытаюсь удалить сущность (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 SET TopicID = null WHERE TopicID = @ p0]

Это кажется странным, как я и думал, говоря Cascade.All () (событие, которое я пытался выполнить Cascade.Delete ()) на моем HasManyотображение его удалит все сообщения по этой теме.Буду признателен, если кто-нибудь покажет мне, что я делаю не так.Спасибо

1 Ответ

0 голосов
/ 12 августа 2010

Попробуйте добавить Inverse() к отображению HasMany.

...