linq to sql,插入多对多的关系

时间:2011-08-02 20:17:37

标签: linq-to-sql many-to-many

我有3张桌子。

发布:PostID,PostName

标记:TagID,TagName

PostTag:PostTagID,PostID,TagID

以下代码是我如何插入多对多。但我使用SubmitChanges()三次,我不认为这是最好的方法。我可以使用存储过程。但是想知道在没有存储过程的情况下是否有更好的方法。

           Post post = new Post()
            {
                PostName =  entity.PostName
            };

            context.Posts.InsertOnSubmit(post);
            context.SubmitChanges();

            Tag tag = new Tag()
            {
                TagName = entity.Tags
            };

            context.Tags.InsertOnSubmit(tag);
            context.SubmitChanges();

            PostTag pt = new PostTag()
            {
                PostID = post.PostID,
                TagID = tag.TagID
            };

            context.PostTags.InsertOnSubmit(pt);
            context.SubmitChanges();

2 个答案:

答案 0 :(得分:0)

您不需要提交三次提交更改。如果你有适当的外键,你可以简单地在代码中添加引用,然后在SubmitChanges中添加一次。 LINQ非常棒。

    Post post = new Post()
    {
        PostName =  entity.PostName
    };

    context.Posts.InsertOnSubmit(post);

    Tag tag = new Tag()
    {
        TagName = entity.Tags
    };

    context.Tags.InsertOnSubmit(tag);

    PostTag pt = new PostTag()
    {
        Post = post,
        Tag = tag
    };

    context.PostTags.InsertOnSubmit(pt);
    context.SubmitChanges();

答案 1 :(得分:0)

您也可以仅在其中一个对象上调用InsertOnSubmit。与Insert into many-to-many relationship tables

比较