У меня есть пример веб-приложения, которое я пишу, и я запутался, почему я получаю это
Свойство 'Id' является частью ключевой информации объекта и не может быть изменено.
когда я не обновляю 'Id'?
Хорошо, вот что я пытаюсь сделать.
У меня есть 2 таблицы Темы и сообщения и -
- Пользователь создает новую тему, он должен добавить запись темы в базу данных
- Получить идентификатор темы иустановить этот идентификатор в идентификатор темы сообщения
- Получить идентификатор этого сообщения и установить его как LastPostId темы
Я обновляю сообщение, поэтому всякий раз, когда мне нужно отобразить последнее сообщение, сделанноетема мне не нужно делать "сортировка по дате для всех сообщений в этой теме".Должен быть лучший способ сделать это ..
Когда я отлаживаю, я вижу, что Идентификатор категории темы устанавливается как Идентификатор темы, которого у меня нет в моем коде обновления.
//
// insert new topic to database
Topic topic = new Topic();
topic.CategoryId = int.Parse(RouteData.Values["id"].ToString());
topic.Title = postModel.Title;
topicRepo.Add( topic );
topicRepo.Save();
//
// insert post to database
PostRepository postRepo = new PostRepository();
Post post = new Post();
post.TopicId = topic.Id;
post.Body = postModel.Body;
string strUserId = UserAccount.FormatUserName( User.Identity.Name );
post.CreatedByUser = strUserId;
post.CreationDate = DateTime.Now;
postRepo.Add( post );
postRepo.Save();
// ***********************
// update topic last post
// ***********************
Topic updateTopic = topicRepo.GetTopic( topic.Id );
updateTopic.LastPostId = post.Id;
TryUpdateModel( updateTopic );
if ( ModelState.IsValid )
topicRepo.Save();
Спасибо!