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