这更像是一个非技术问题。
我们打算将 OrganizationServiceContext 与 Linq 一起使用,而不是调用 OrganizationServiceProxy。
我的问题是:上下文的生命周期应该是多少?它应该为每个方法实例化一次,还是可以使用单例方法在 Web 应用程序的整个生命周期中保留它?
优点/缺点是什么?有什么建议吗?
提前致谢
这更像是一个非技术问题。
我们打算将 OrganizationServiceContext 与 Linq 一起使用,而不是调用 OrganizationServiceProxy。
我的问题是:上下文的生命周期应该是多少?它应该为每个方法实例化一次,还是可以使用单例方法在 Web 应用程序的整个生命周期中保留它?
优点/缺点是什么?有什么建议吗?
提前致谢
只是为了扩展 Gats 的答案,这是完全正确的,我们几乎为我们拥有的每个单独的方法创建了新的上下文对象。即使对于 Silverlight,我们知道我们一次只为一个用户运行,为了避免创建新的上下文对象,随时管理上下文中的内容也太痛苦了。
您永远不应该在 Web 应用程序的整个生命周期中保留数据上下文。应用程序生命周期在您的代码之外进行管理。
当其他用户同时保存时,保存更改也有一个痛苦的世界。数据上下文应始终仅在请求的生命周期内进行管理,并且运行保存更改不应在其他人正在处理的请求中保存点点滴滴。
如果要减少读取,请使用缓存。如果您想管理并发使用带有工作单元的事务。