2

我正在学习 Linq to sql,遇到了“插入附加实体对象”我已经测试了书中的示例,它工作正常,但有人可以解释我如何编辑它以使其适用于我的示例

我有两个表(在此示例中我将忽略 userID)

主题 -> 主题 ID、标题

帖子 -> PostID、TopicID、内容

现在,当用户创建新主题时,我必须创建包含有关它的详细信息的新主题和包含有关该帖子的详细信息的新帖子,但是,问题是我必须将这两个表一次插入数据库,因为我不想有主题并且没有分配给它的帖子。

我有可以正常工作的代码if我手动设置了 TopicID,但是我想免费使用它,所以它会自动分配

            Topic topic = new Topic
                            {
                                TopicID = 1, //how to remove this line
                                Title = "Test", 
                                Post = new Post
                                    {
                                        TopicID = 1, // and this one
                                        Content = "some text",
                                    }
                            };

所以要恢复,我想删除这两行,以便自动生成 TipicID 并将两条记录插入数据库,或者没有

编辑:

LooL,我再次对其进行了测试,如果我只是评论这两行,似乎这段代码工作正常,但是what will happen如果主题被插入数据库但计算机突然关闭并且帖子未保存在数据库中,有人可以解释我。它会起作用并删除主题,还是我将拥有在数据库中没有帖子的主题?

4

1 回答 1

2

您应该跳过显式设置 TopicID 并使用 Topic 属性(对 Topic 实例而不是 ID 的对象引用)建立关系。

看起来像这样。

Topic topic = new Topic                            
{                                
    Title = "Test"                                                         
};

Post = new Post                                    
{                                        
    Topic = topic,
    Content = "some text"
};   
于 2011-08-07T21:58:51.447 回答