在EF6中设置EntityKey DbContext

问题描述:

我已经将我的项目从EF5升级到了6 - 我也决定使用新的代码生成策略。在EF6中设置EntityKey DbContext

这意味着我有点痛苦 - 我需要通过我所有的DALs并将它们从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,或者说,建议针对这种情况的另一种策略

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

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

然而,它还是老样子l基于ObjectContext,因为EntityKeys不在DbContext中使用。我建议重写你的代码不要使用它们,特别是因为ObjectContext基本上在EF7中消失了。

+0

“我会建议重写你的代码,不要使用它们”。我想这样做,但我不明白为什么DbContext不使用它们。什么是等效的,如果有的话?如果这是显而易见的,我对EF有点新意。 – Kev 2015-01-12 09:52:36