entityFramework是一种ORM框架
- 缓存的内容
- 带有主键的实体
- manage context lifetime(生效与失效时间)
- dispose too fast
- 缺点:can‘t enjoy the all the features it holds(changing tracking)
-
1 using (var context = new SchoolEntities()) 2 { 3 context.AddToDepartments(department); 4 context.SaveChanges(); 5 }
lifetime too long
- 缺点:导致内存泄露
- rule,对于web application,一个request创建一个context,
- when to create context
- How to dispose
- using——implict Dispose
- dispose
- 缓存的目的:提高系统性能
- .重载dispose()方法的作用
- 多线程之间内存共享,那多个用户同时操作时是否会出现脏读及误读
- 并发操作
- 异步操作
- 目的:不会缩短单个线程的时间,只会提高系统整体性能
- 解释:当一个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/