0

我正在使用 ASP.net Web API 来构建一个简单的 REST api。我将 Linq 用于我的数据访问层,并为每个 api 调用更新了一个新的 linq 数据上下文。但是为每次调用创建一个新的数据上下文似乎有点耗费资源,所以我开始考虑将数据上下文移动到将在 global.asax 中实例化的单个应用程序级变量。

每个 api 函数只是在单个表上执行简单的 CRUD 操作。我知道如果使用这种方法会有一些并发问题。但实际上所有表都由用户分区,因此 2 个不同的用户无法更新或删除任何表上的相同行。此外,由于它是一个 api,因此我在每次更改后都调用 datacontext.submitchange() ,因此任何单个用户都可以同时更新同一行。

那么除了并发问题之外,是否还有其他问题是在全局级别管理数据上下文与在每个 api 调用上实例化?是否有其他方法也可以实现应用程序级实例化的性能/资源优势?

4

1 回答 1

0

我相信您可以将数据上下文定义为全局变量。如果您绝对确定将来不会因此而出现问题,那么您可以这样做。

但是,在您进行此更改之前,我建议您对您的应用程序进行基准测试,以找出究竟是什么在消耗您的资源?您绝对确定您的数据上下文是有罪的吗?如果其他东西吃掉你的资源怎么办?

您应该首先确定您的问题,然后才开始优化。

于 2013-06-16T00:12:27.783 回答