【问题标题】:Setting EntityKey in EF6 DbContext在 EF6 DbContext 中设置 EntityKey
【发布时间】:2015-01-09 18:19:56
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    你总是可以使用这种方法:

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

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

    【讨论】:

    • “我建议重写你的代码以不使用它们”。我想这样做,但我不明白为什么 DbContext 不使用它们。什么是等价物,如果有的话?我对 EF 有点陌生,如果这很明显,我很抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2014-02-05
    相关资源
    最近更新 更多