我应该在哪里实例化我的服务类'SqlDatacontext?

时间:2008-12-18 13:32:49

标签: linq-to-sql

我有几个具有静态方法的服务类,并为我的程序的其余部分提供服务。大多数这些服务涉及访问SqlDataContext(linq2sql)的实例。

首先,我尝试将此连接实例化为每个服务类的静态私有成员。 这样可行,但它也会产生一堆锁定,延迟和脏对象问题。

现在我使用了一个在方法级别实例化的私有实例。这在锁定和脏对象问题方面效果更好,因为范围更小且更可预测,但这也会在连接握手方面产生大量开销。

您如何建议解决此问题?

1 个答案:

答案 0 :(得分:2)

看一下this article by Rick Strahl - 他解释了这些选项并提供了一个很好的工厂实现来应对每个Web上下文/线程创建一个请求(取决于你正在做什么。

在我使用linq-to-sql的大多数应用程序中使用它,这似乎是正确的方法!