我是Entity Framework的新手,如果问题看起来很基本,请原谅我。我想知道,保存Entity Framework创建的上下文对象以便在应用程序上使用它更好吗,或者每次我想访问/修改数据库时都应该创建一个新的上下文对象?
要以不同的方式表达问题,如果我过于频繁地创建上下文对象,是否存在任何性能问题?或者,如果我在应用程序的整个生命周期中保持上下文对象的活动状态,那么是否存在任何数据库问题(例如锁定数据库)?
答案 0 :(得分:4)
EF和Linq2SQL上下文的设计寿命都很短。 如果您正在提供网页,通常最佳做法是每个HTTP请求使用一个上下文。
但我认为这也适用于其他ORM。所有人都使用某种缓存,如果上下文存在时间过长或请求之间共享,则可能导致的对象更改跟踪是奇怪的错误。
编辑:如果您正在编写胖客户端应用程序,情况会有所不同。