【问题标题】:Linq to sql Inserting Attached Entity ObjectsLinq to sql 插入附加的实体对象
【发布时间】:2011-10-22 00:06:48
【问题描述】:

我正在学习 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,以防主题被插入数据库但计算机突然关闭并发布未保存在数据库中。它会恢复并删除主题,否则我的主题将在数据库中没有帖子?

【问题讨论】:

  • 两张表有没有一些唯一性约束。

标签: c# linq-to-sql entityobject


【解决方案1】:

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

看起来像这样。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多