linq to sql, вставьте отношения многие ко многим - PullRequest
4 голосов
/ 03 августа 2011

У меня 3 таблицы.

Сообщение: PostID, PostName

Tag: 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 голосов
/ 08 ноября 2011

Вы также можете вызывать InsertOnSubmit только для одного из этих объектов.Сравните с Вставьте в таблицы отношений "многие ко многим"

0 голосов
/ 03 августа 2011

Вам не нужно отправлять изменения три раза. Если у вас есть соответствующие внешние ключи, вы можете просто добавить ссылки друг к другу в коде, а затем один раз 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...