asp.net – 实体框架ObjectContext重用

我现在正在学习EF,并且有一个关于ObjectContext的问题:

当我访问数据库时,应该为每个查询(函数)创建ObjectContext的实例吗?

或者最好创建一次(单例)并重新使用它?

在EF之前,我正在使用企业库数据访问块并创建DataAccess函数的数据实例…

解决方法

绝对为每个查询.这是一个轻量级的对象,因此每次需要时都不会产生很多成本.

此外,保持ObjectContext的时间越长,当您针对它运行查询时,它将包含的缓存对象越多.这可能会导致内存问题.因此,将ObjectContext作为单例,是一个特别糟糕的主意.随着您的应用程序被使用,您将在单一ObjectContext中加载越来越多的实体,直到最后将整个数据库存储在内存中(除非您在不再需要时分离实体).

然后有一个可维护性问题.有一天,您尝试追踪一个错误,但无法确定导致数据加载的位置.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....