Вложенная вставка в Linq to SQL? - PullRequest
1 голос
/ 25 октября 2009

Как поместить вложенную вставку в базу данных, используя Linq to SQL

Мой стол выглядит так:

[Post]
--Post ID
--Post Title

[Attachment]
--Post ID (PFK)
--AttachmentID (PK)
--IMGID (FK)
--VIDID (FK)

[IMG]
--IMGID (PK)

это таблица M: N

в основном, когда я отправляю форму, она идет вместе с приложениями в форме. Я в порядке с сообщением вставки, но борюсь с вложением вложений, так как у меня еще нет идентификатора POST ...

так что, по вашему мнению, является лучшим решением для такого рода проблем?

Спасибо

1 Ответ

1 голос
/ 25 октября 2009

Если вы создаете двустороннюю ассоциацию между публикацией и вложением, то вы можете сделать следующее:

Post post = new Post { /* Set some fields perhaps */ };
Attachment attachment = new Attachment { /* Same here */ };
attachment.Post = post; // That is the association you need to create
dataContext.Posts.InsertOnSubmit(post);
dataContext.SubmitChanges();

LINQ-to-SQL будет автоматически обрабатывать вставку вложений.

Некоторое время я не использовал конструктор DBML, но я вполне уверен, что вы можете сказать, что у поста есть вложения, а у вложения есть пост. И когда вы говорите attachment.Post = post, установщик для Post внутренне будет делать _post.Attachments.Add(attachment), где _post является частным членом Attachment сущности. Затем, когда вы отправляете сообщение, оно просматривает вложения и также вставляет их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...