【问题标题】:Cached entities making round trip to database缓存实体往返数据库
【发布时间】:2012-01-09 14:40:58
【问题描述】:

我正在缓存对象,如果我对缓存的实体进行 linq 查询,那么...由于实体框架中的延迟加载,这些查询会导致数据库往返吗?

【问题讨论】:

  • 我没有对此进行测试,但如果您访问延迟加载的属性,它们可能,但不应该用于第一次获取的属性.我相信这仅适用于所述属性标记为virtual。如果你不将它们标记为virtual,你将不会得到惰性属性。
  • 你是对的......第一次它获取导航属性我认为是延迟加载的权利......?

标签: vb.net linq c#-4.0 entity-framework-4 entity-framework-4.1


【解决方案1】:

如果您在缓存实体之前不分离实体,实体将保留对创建它们的上下文的引用并使用它来延迟加载。最好分离实体。

context.Detach(entity);
cachedItems.Add(entity);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2013-08-07
    • 2013-11-18
    • 2015-03-10
    • 2016-10-27
    相关资源
    最近更新 更多