我正在MVC中创建一个论坛。当新用户创建主题时,还将创建新帖子。在数据库中,一个主题可以有很多帖子。在TopicDB中,主键是auto_Incremented。我可以很容易地创建主题,但是,困难的部分是弄清楚我刚插入的主题id是什么,以便我可以将该数据传递到PostsDB。
我创造了这样的东西,但意识到这是一种可怕的做法。如果有人删除了某个主题,则此内容将无效。
var TopicID = db.forum_topic.Count() + 1;
var NewTopic = Topic
{
id = TopicID,
title = FT.title,
category_id = id,
created_by = Username.username,
created_on = DateTime.Now,
last_post_by = Username.username,
last_post = DateTime.Now,
post_count = 0,
};
var NewPost = new Posts
{
description = HtmlUtility.SanitizeHtml(FT.BodyText),
topic_id = TopicID,
posted_on = DateTime.Now,
user_id = Username.id,
};
db.forum_topic.AddObject(NewTopic);
db.forum_post.AddObject(NewPost);
db.SaveChanges();
你们对我如何做这项工作有什么建议吗? 非常感谢。