【问题标题】:Entity Framework 6 - Update DB record by copying another DB record实体框架 6 - 通过复制另一个数据库记录来更新数据库记录
【发布时间】:2019-04-26 04:30:18
【问题描述】:

我刚开始使用 Asp.NET MVC 和 EF,我猜想必须有一个简单的解决方案来解决我正在尝试做的事情。

我想做什么:

使用另一个数据库记录的值更新现有数据库记录。

在我的 Post Controller 操作中,我传递了原始记录的 ID,并且记录的 ID 应该被复制到原始记录上。

var orgRecord = ctx.Model.Where(x => x.ID == vm.ID)...
var copyRecord = ctx.Model.Where(x => x.ID == vm.IDtoCopy)...

我尝试了不同的方法,但我总是得到一个错误,ID“是对象的关键信息的一部分,无法修改”

以下是我的一些尝试:

 orgRecord.ID = copyRecord.ID

 ctx.Entry(orgRecord).CurrentValues.SetValues(copyRecord);
 ctx.Entry(orgRecord).State = EntityState.Modified;
 ctx.Entry(orgRecord).Property(x => x.ID).IsModified = false;

我需要做什么才能复制所有属性但保持主键不变?

谢谢。

【问题讨论】:

    标签: asp.net-mvc entity-framework model-view-controller asp.net-mvc-5 entity-framework-6


    【解决方案1】:

    尝试以下操作:使用AsNoTracking() 获取copyRecord,然后将ID 设置为原始值,然后附加到上下文,将状态设置为已修改并保存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2017-08-07
      • 2016-01-15
      • 1970-01-01
      • 2016-03-26
      相关资源
      最近更新 更多