我有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();
答案 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
比较