C# 实体框架错误:属性';Id';是对象的一部分';s键信息,无法修改

C# 实体框架错误:属性';Id';是对象的一部分';s键信息,无法修改,c#,entity-framework,C#,Entity Framework,这是我第一次在StackOverflow上问问题,尽管我已经阅读和使用这个论坛至少一年了,所以请容忍我 我正在做一个辅助项目,我已经试着解决这个问题好几个星期了。我无法缩小这个问题的范围,我在网上尝试了大量不同的解决方案,但似乎没有一个能为我解决这个问题 错误 属性“Id”是对象密钥信息的一部分,无法修改 症状 我可以看出,调用EntityFramework函数时会出现问题,特别是SaveChanges,但Find也会出现问题 我相信这个问题是在我重命名数据库中的一个表时开始出现的(首先是它的

这是我第一次在StackOverflow上问问题,尽管我已经阅读和使用这个论坛至少一年了,所以请容忍我

我正在做一个辅助项目,我已经试着解决这个问题好几个星期了。我无法缩小这个问题的范围,我在网上尝试了大量不同的解决方案,但似乎没有一个能为我解决这个问题

错误 属性“Id”是对象密钥信息的一部分,无法修改

症状
  • 我可以看出,调用EntityFramework函数时会出现问题,特别是SaveChanges,但Find也会出现问题
  • 我相信这个问题是在我重命名数据库中的一个表时开始出现的(首先是它的代码,但我不能删除数据库,因为我不能丢失数据)。迁移创建了一个巨大的脚本,它部分运行,我对其中的部分进行了注释,直到它工作为止。我开始认为这是我所有问题的根源,但我仍然找不到原因。在我所知甚少的情况下,我已经确保表设置了主键,并且确实设置了()
问题
  • 首先,当我只是试图从数据库中获取记录时,为什么会出现这个错误
  • 我还应该看什么东西
代码示例 保存更改 发现 原肠实体
我已经尝试了谷歌上stack overflow和许多其他论坛上显示的大多数答案,这些答案似乎为我指明了正确的方向,但都没有用。任何帮助都将不胜感激

只是粘贴了我给@jeff siver的评论,作为我如何找到解决问题的方法。它实际上并没有找到问题的根源,但它使问题消失了

对于其他有同样问题的人来说,这可能不是最好的解决方案,但我将我的解决方案从Visual Studio 2010(使用了
实体框架4.0
)升级到了Visual Studio 2015,这反过来也迫使我将
实体框架升级到了6.0


我知道这不是最理想的解决方案,但对于已经尝试过所有方法的其他人来说,这可能是另一种尝试

哪一行有例外?嗨,对不起,我让你挂了。我有几个星期的工作压力很大,无法恢复。对于其他有同样问题的人来说,这可能不是最好的解决方案,但我将我的解决方案从Visual Studio 2010(使用Entity Framework 4.0)升级到了Visual Studio 2015,这反过来也迫使我将Entity Framework升级到6.0。我知道这不是最理想的解决方案,但对于已经尝试过所有方法的其他人来说,这可能是另一种尝试。无论如何谢谢你的帮助!
public CandidatoDetail Get(Guid id)
{
    return _dbContext.CandidatoDetails.Include("Nacionalidad").SingleOrDefault(c => c.Id == id);
}
public Procedencia Get(Guid id)
{
    return _dbContext.Procedencias.Find(id);
}
namespace GAdUPIN.CORE.Domain
{
    public class Procedencia
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public Guid Id { get; set; }

        [DisplayName("Canal de procedencia")]
        [Required(ErrorMessage = "Debe incluir el nombre de la procedencia")]
        public string NombreProcedencia { get; set; }    
    }
}