Linq to sql Вставка объектов присоединенного объекта

Я изучаю Linq для sql, и я столкнулся с "Вставкой присоединенных объектов сущностей". Я протестировал пример из книги, и он отлично работает, но кто-то может объяснить мне, как отредактировать его, чтобы он работал для моего примера

У меня есть две таблицы (я буду игнорировать userID в этом примере)

Темы -> TopicID, Название

Сообщения -> PostID, TopicID, Содержание

Теперь, когда пользователь создает новую тему, я должен создать новую тему, которая содержит подробности о ней, и новую запись, которая содержит подробности об этом посте, однако проблема заключается в том, что мне нужно сразу вставить эти две таблицы в базу данных, так как я не хочу иметь тему и ни один пост не назначен на него.

У меня есть код, который отлично работает if Я установил TopicID вручную, но хотел бы использовать его бесплатно, чтобы он назначался автоматически

            Topic topic = new Topic
                            {
                                TopicID = 1, //how to remove this line
                                Title = "Test", 
                                Post = new Post
                                    {
                                        TopicID = 1, // and this one
                                        Content = "some text",
                                    }
                            };

Итак, чтобы возобновить, я хотел бы удалить эти две строки, чтобы TipicID генерировался автоматически, и обе записи вставлялись в базу данных, или ни одна не была

РЕДАКТИРОВАТЬ:

LooL, я проверил это еще раз и похоже, что этот код работает нормально, если я просто прокомментирую эти две строки, но может кто-нибудь объяснить мне what will happen В случае, если тема вставлена ​​в базу данных, но компьютер внезапно выключается и сообщение остается несохраненным в базе данных. Будет ли он возвращен и удалит тему, или у меня будет тема без поста в базе данных?

1 ответ

Вы должны пропустить явную настройку TopicID и построить связь, используя свойство Topic (объектная ссылка на экземпляр Topic, а не ID).

Это будет выглядеть так

Topic topic = new Topic                            
{                                
    Title = "Test"                                                         
};

Post = new Post                                    
{                                        
    Topic = topic,
    Content = "some text"
};   
Другие вопросы по тегам