c# - Linq to sql插入附加的实体对象

标签 c# linq-to-sql entityobject

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

我有两个表(在这个例子中我将忽略 userID)

主题 -> TopicID、标题

帖子 -> 帖子 ID、主题 ID、内容

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

我有工作正常的代码如果我手动设置了 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,我再次测试了它,如果我只注释这两行,这段代码似乎工作正常,但是有人可以解释一下会发生什么如果主题被插入数据库但是计算机突然关闭,帖子未保存在数据库中。它会退回并删除主题,还是我的主题在数据库中没有帖子?

最佳答案

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

看起来像这样。

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

Post = new Post                                    
{                                        
    Topic = topic,
    Content = "some text"
};   

关于c# - Linq to sql插入附加的实体对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976000/

相关文章:

c# - Entity Framework Core SelectMany 然后包含

c# - 您应该如何处理存储库模式中的父实体和子实体?

.net - 如何使用 Linq-to-SQL 只插入新记录?

c# - 尝试从数据集中获取列时出现异常 "Enumeration has either not started or has already finished"

mysql - EntityObject 上的 Convert.ChangeType()

c# - 使用 MVVM Light 时处理复选框的最佳方法是什么

c# - 母版页中的 ResolveUrl 问题

c# - TypeCode 与 typeof