0

エンティティ (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() を試しました) と言って、このトピックのすべての投稿を削除すると思ったので、これは奇妙に思えます。誰かが私が間違っていることを教えてくれれば幸いです。ありがとう

4

1 に答える 1

0

Inverse()HasMany マッピングに追加してみてください。

于 2010-08-12T19:35:18.950 に答える