Заголовок странного вопроса ...
То, что я пытаюсь выполнить, довольно просто, я думаю.
Я получил 3 таблицы в базе данных,
BlogPost - BlogPostTagsConnection - Теги
Блог-пост содержит текст, заголовок, фрагмент, автора, идентификатор и т. Д. BlogPostTagsConnection содержит идентификатор BlogPost и теги IDи, наконец, теги содержат tagid и tag.
Итак, я попытался выяснить, как вставить новую запись (и, в конце концов, обновить ее):
public void Create(BlogPost post)
{
DB db = new DB();
var matchingTags = from data in db.Tags
where (from tagsInPost in post.Tags select tagsInPost.TagName).Contains(data.Tag)
select new Tag() {TagId = data.TagID, TagName = data.Tag};
var post2 = new DataBlogPost
{
Title = post.Title,
Text = post.Text,
Slug = post.Slug,
ShortDescription = post.ShortDescription,
Published = post.Published,
Author = post.Author
};
db.DataBlogPosts.InsertOnSubmit(post2);
... <- insert the tags and retrieve the id from the tags and the blogpost
... <- insert the ids from the tags and blogposts to the blogpoststagsconnection table
db.SubmitChanges();
}
Сначала я получаю всетеги из базы данных, которые соответствуют тегам, которые я написал в моем блоге.Теги сохраняются в списке с тегами {TagID, Tag}.
Во-вторых, я вставляю свой новый пост в базу данных (post2).
После этого мне нужно вставить все теги (который я создал с помощью своего поста), поэтому, если я написал это в текстовом поле тегов «tag1 tag2 tag3 tag4», а моя база данных уже содержит tag1 и tag2, он должен создать 2 новые записи, одну для tag3 и одну для tag4.
Затем мне нужно как-то получить идентификатор из сгенерированного поста блога, а также идентификатор из тегов tag3 и tag4, чтобы можно было вставить их в BlogPostTagsConnection.
Но как мне вернуть идентификатор обратно?или есть более простой способ обработки этих вставок?