我应该在Entity Framework中保存上下文对象吗?

问题描述:

我是新来的实体框架,所以原谅我,如果这个问题似乎基本。我想知道,最好是保存由Entity Framework创建的上下文对象,以便在应用程序中使用它,或者我应该在每次访问/修改数据库时创建一个新的上下文对象?我应该在Entity Framework中保存上下文对象吗?

为了制定不同的问题,如果我太频繁地创建上下文对象,会出现任何性能问题吗?或者如果我在应用程序的整个生命周期中保持上下文对象存在,那么是否会出现任何数据库问题(例如锁定数据库)?

EF和Linq2SQL上下文都是为短期使用而设计的。 如果您正在提供网页,通常最佳做法是根据HTTP请求使用一个上下文。

但我认为这也适用于其他ORMs。所有这些都使用某种缓存,并且可能导致的对象更改跟踪是如果上下文寿命过长或在请求之间共享时出现的奇怪错误。

编辑:如果您正在编写胖客户端应用程序,情况可能会有所不同。

+0

感谢您的信息:-) – Rafid 2011-12-22 09:51:54