在EntityFramework中获取生成的主键ID?

时间:2013-12-14 13:15:23

标签: c# asp.net asp.net-mvc database entity-framework

我正在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();

你们对我如何做这项工作有什么建议吗? 非常感谢。

0 个答案:

没有答案