我正在使用 ASP.net Web API 来构建一个简单的 REST api。我将 Linq 用于我的数据访问层,并为每个 api 调用更新了一个新的 linq 数据上下文。但是为每次调用创建一个新的数据上下文似乎有点耗费资源,所以我开始考虑将数据上下文移动到将在 global.asax 中实例化的单个应用程序级变量。
每个 api 函数只是在单个表上执行简单的 CRUD 操作。我知道如果使用这种方法会有一些并发问题。但实际上所有表都由用户分区,因此 2 个不同的用户无法更新或删除任何表上的相同行。此外,由于它是一个 api,因此我在每次更改后都调用 datacontext.submitchange() ,因此任何单个用户都可以同时更新同一行。
那么除了并发问题之外,是否还有其他问题是在全局级别管理数据上下文与在每个 api 调用上实例化?是否有其他方法也可以实现应用程序级实例化的性能/资源优势?