在EF6 DbContext中设置EntityKey

时间:2015-01-09 18:19:56

标签: .net entity-framework entity-framework-6

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

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

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

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访问器,或者针对这种情况推荐的其他策略?

1 个答案:

答案 0 :(得分:0)

您可以随时使用此方法:

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

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