Context缓存问题

Posted caohuan95568

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Context缓存问题相关的知识,希望对你有一定的参考价值。

entityFramework是一种ORM框架

  • 缓存的内容
  1. 带有主键的实体

 

  • manage context lifetime(生效与失效时间)
  1. dispose too fast
    1. 缺点:can‘t enjoy the all the features it holds(changing tracking)
  2. 1 using (var context = new SchoolEntities())
    2 {
    3     context.AddToDepartments(department);
    4     context.SaveChanges();
    5 }

    lifetime too long

    1. 缺点:导致内存泄露
  3. rule,对于web application,一个request创建一个context,
  4. when to create context
  5. How to dispose
    1. using——implict Dispose
    2. dispose

 

 

 

         

 

 

 

  • 缓存的目的:提高系统性能
  • .重载dispose()方法的作用

 

  • 多线程之间内存共享,那多个用户同时操作时是否会出现脏读及误读

 

  • 并发操作
  • 异步操作
  1. 目的:不会缩短单个线程的时间,只会提高系统整体性能
  2. 解释:当一个request请求data时,释放当前线程,做其他操作,等返回数据时重新调用另一个线程

[参考文献]

http://blogs.microsoft.co.il/gilf/2010/02/07/entity-framework-context-lifetime-best-practices/

https://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext/

以上是关于Context缓存问题的主要内容,如果未能解决你的问题,请参考以下文章

(Android Studio)不能在片段中使用 context/getActivity() [重复]

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

如何缓存片段视图

Android从Fragment跳转Activty

Android代码片段