【发布时间】:2016-01-12 17:45:13
【问题描述】:
我读到在实体框架的早期版本中,您可以访问 Reload() 方法,如下所示:Db.Entry<DatabaseModels.User>(_me).Reload();
我收到一条错误消息,即 EntityEntry 不包含“重新加载”的定义。
我什至想重新加载的原因是缓存(或者我认为是缓存,而 EF 可能不知道何时使缓存无效)。
例子:
加载用户A。
创建用户 A 将拥有的项目。
尝试通过用户关系访问该新项目。
userA.Items 返回空
从数据库中重新获取userA,并调用关系,新创建的项目在关联中。
不确定为什么会发生这种情况,或者是否有办法让 EF 了解缓存失效问题。
【问题讨论】:
-
您不能直接将项目添加到 userA 吗?
Item myItem = new Item(...); userA.Items.Add(myItem); context.SaveChanges();另外你确定你没有禁用代理创建? -
我怎么知道我是否禁用了代理创建?
-
context.Configuration.ProxyCreationEnabled必须为真 -
EF7 在上下文中似乎没有配置属性
-
好吧,如果你不碰它也很好,反正它是默认启用的 :)
标签: c# entity-framework caching entity-framework-core