使用实体框架编辑以前的数据

Posted

技术标签:

【中文标题】使用实体框架编辑以前的数据【英文标题】:Edit previous data using entityframe work 【发布时间】:2018-01-14 09:00:53 【问题描述】:

错误信息:

附加'ReadingDataStoringToLocation.destinationroute' 类型的实体失败,因为同一类型的另一个实体已经具有相同的主键值”

这是我的代码。

DRoutes.airportid = Convert.ToInt32(route.SelectSingleNode("airportid").FirstChild.InnerText);

DRoutes.resortid = Convert.ToInt32(route.SelectSingleNode("resortid").FirstChild.InnerText);

DRoutes.name = route.SelectSingleNode("resortname").FirstChild.InnerText;                                    

DRoutes.airportname = route.SelectSingleNode("airportname").FirstChild.InnerText;

DRoutes.id = data.id;

Db.Entry(DRoutes).State = EntityState.Modified;

Db.SaveChanges();

【问题讨论】:

就像消息说的那样,您似乎想将数据库中的一个项目修改为一个项目,该项目在主数据库中的值与数据库中的另一个项目相同。这应该行不通,因为主键必须是唯一的。 是的,但我想更新数据库中以前的数据,你能告诉我那个代码 【参考方案1】:

似乎这条线给了你错误信息...删除它,也许?

DRoutes.id = data.id;

【讨论】:

以上是关于使用实体框架编辑以前的数据的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何编辑实体框架连接字符串?

更新映射到视图的实体框架实体

保存已编辑的核心数据实体未保存

使用实体框架6进入和编辑导航属性

更新实体框架中的子表

实体框架 6 代码优先触发器