【发布时间】:2018-02-07 13:33:48
【问题描述】:
我有一个对象,它有一个存储为 GUID 和友好 ID 的密钥,如下所示:
public class Job {
[Key]
public Guid Id { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int FriendlyId { get; set; }
public string Description { get; set; }
}
但是,当我尝试使用我的更新方法更新描述时:
public void Update(Job job, Job jobParam) {
if (job == null) {
throw new AppException("Job does not exist");
}
//Update job properties
job.Description = jobParam.Description;
_context.Job.Update(job);
_context.SaveChanges();
}
我收到一条错误消息:
System.Data.SqlClient.SqlException:无法更新标识列 'FriendlyId'
我已确保尝试更新正确的对象,但我不明白为什么friendlyID 在未更改时会尝试更新。在网上查看时,我可以看到 EF core 1.1 中存在一个会导致此问题发生的错误,但与 2.0 或不是键的值无关。
【问题讨论】:
-
请分享这个方法
Job.Update(job); -
这是一种内置的上下文方法。这不是我的代码,而是 EF。
标签: c# entity-framework .net-core entity-framework-core