在 EF6 DbContext 中设置 EntityKey



我已经将我的项目从 EF5 升级到 6 - 我还决定使用新的代码生成策略。

这对我来说意味着有点痛苦 - 我需要遍历我所有的 DAL 并将它们从 ObjectContext 切换到 DbContext。

进行以下代码更改后,我收到错误"无法解析符号'实体键':

using (var ctx = DbContextManager<MyDataContext>.GetManager("MyDataContext"))
{
   var label = new Label()
   {
      Id = item.Id,
      EntityKey = new EntityKey("MyDataContext.Labels", "Id", item.Id)
   };
   ctx.DbContext.Labels.Attach(label);
   this.WriteNonKeyData(label, item);
   ctx.DbContext.SaveChanges();
   return ReadData(label);
}

DbContextManager 中是否有其他 EntityKey 访问器,或者针对此情况推荐的其他策略?

您始终可以使用此方法:

https://stackoverflow.com/a/15896086/61164

但是,它仍然基于 ObjectContext,因为 DbContext 中不使用 EntityKeys。 我建议重写代码以不使用它们,特别是因为 ObjectContext 在 EF7 中基本上消失了。

最新更新