我正在尝试删除一个实体(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())它会删除该主题的所有帖子。如果有人能告诉我我做错了什么,我将不胜感激。谢谢