3

我试图公开一个IQueryable<>over ASP.NET Web API,我发现我需要保持数据源打开直到请求完成,以便 ASP.NET Web API 中内置的 OData 查询系统可以完成它的工作。

好吧,这听起来很合理。但是我在哪里处理数据源?我没有看到任何明显的地方。我应该在应用程序中管理请求状态吗?执行此操作的标准方法是什么?

控制器的Dispose()方法是否合适?即是否可以保证一个控制器实例只服务一个请求,或者这只是一个实现细节?

我正在使用来自 ASP.NET MVC 4 RC 的 ASP.NET Web API。

4

1 回答 1

6

您可以使用在 上调用的扩展RegisterForDisposeHttpRequestMessage注册您想要在请求完成时处理掉的任何资源。

顺便说一句,您可能希望查看以下链接以了解IQueryable下一个 Web API 版本中的支持。 http://aspnetwebstack.codeplex.com/discussions/359229

Dispose()[编辑]以控制器的方法做事也是一种解决方案。在基于 Web APIApiController的控制器中,控制器始终是每个实例(每个请求一个控制器实例)

于 2012-07-07T00:33:37.483 回答