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"
};