MVC 更新时 “id是对象的键信息的一部分,不能修改"

love07081403 2014-06-20 04:49:16
//更新档案状态
var record = db.Records.Where(m => m.id == 1).FirstOrDefault();
record.stateid = 3;//更新状态id
UpdateModel(db.Records.Single(m => m.id == record.id));
db.SaveChanges();

结果提示 属性id是对象的键信息的一部分,不能修改! 没有修改到ID啊,怎么回事???
...全文
976 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-06-20
  • 打赏
  • 举报
回复
var record = db.Records.FirstOrDefault(m => m.id == 1); UpdateModel(record); record.stateid = 3; record.id = 1; db.SaveChanges();
Bens2014 2014-06-20
  • 打赏
  • 举报
回复
var record = db.Records.Where(m => m.id == 1).FirstOrDefault(); record.stateid = 3;//更新状态id UpdateModel(db.Records.Single(m => m.id == record.id)); db.SaveChanges(); UpdateModel(db.Records.Single(m => m.id == record.id)); 这一句是多余的。。。。。。 var record = db.Records.Where(m => m.id == 1).FirstOrDefault(); 当执行这一句时,EF的上下文容器,会将从数据库查询数据实体封装到上下文容器的代理类中,此时的状态是unchange 如果你对实体中属性进行了修改,当执行 db.SaveChanges();的时候,此时代理类的状态是Modified,上下文容器会根据代理类的状态,生成相应SQL语句
请叫我官人 2014-06-20
  • 打赏
  • 举报
回复
UpdateModel(db.Records.Single(m => m.id == record.id)); 这一句可以不要的吧....直接db.SaveChanges();

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧