我有我写一个简单的Web应用程序,为什么我得到即时困惑这个属性“ID”是对象的关键信息的一部分,不能被修改
属性“ID”是的一部分该对象的关键信息无法修改。
当我不更新'Id'?
好的,所以这就是我想要做的。
我有2个表主题和邮电 -
- 用户创建一个新的话题,应该在数据库
- 上添加主题记录获取主题ID,并设置标识,以邮政的TopicId
- 获得该职位的ID,并将其设置为主题的LastPostId
我重新更新的帖子所以每当我需要显示的话题 我不需要牛逼所做的最后一个职位o按照该主题中的所有帖子排序“。 应该有更好的方式来做到这一点..
当我调试我看到 主题类别ID被设置为主题ID 我并不在我的更新代码有。
//
// 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();
谢谢!
异常在哪里发生?我猜它是在postRepo.Save()或topicRepo.Save()中。我们可能需要查看更多代码。 – 2011-04-28 14:40:07
它发生在TryUpdateModel(updateTopic)中。我看到EF将Id(14)设置为8(categoryId),这很奇怪。 – 2011-04-28 14:58:23
你可以发布postModel和Topic类吗? – 2011-04-28 15:08:37