2010-06-11 93 views
0

假设我想要在端点上使用三种方法创建(无状态)WCF服务:performSqlOperationA(),performSqlOperationB()performSqlOperationC()。每种方法都将数据插入到SQL数据库中。在WCF调用中处理SQL连接的最佳做法是什么?

我在办公室看到事情的方式,每种方法都以代码初始化一个SqlConnection对象开始。每种方法都会以代码结束安全处理。

什么是编码这些WCF方法的一个好习惯,以便SqlConnection对象在每个方法中被初始化并处理,而不必在每个方法中执行这些操作?我知道我可以在WCF方法的类的构造函数中初始化连接,但我不知道如何处理它......这些调用不能包装在using块中。

一个解决方案,我熟悉的是 PostSharp,这让我设置导致特定的代码来在开始和每个方法调用结束时自动运行的属性,但它是非常优选以做到这一点只有.net框架。

回答

3

最佳做法是使用using语句在每个方法调用中(或在从您的WCF服务操作调用的私有数据访问方法中)初始化和配置SqlConnection对象。

public void performSqlOperationA() 
{ 
    ... 
    using(SqlConnection connection = ...) 
    { 
     ... 
    } 
    ... 
} 

什么是你不喜欢这个?

+0

我不喜欢这件事,我必须在每种方法中做到这一点。似乎应该有一些解决这个冗余的方法。 – 2010-06-11 15:21:52

+0

您可以封装各种位(例如获取连接字符串和创建连接),但没有更好的方法来完成它。你也可以使用一个ORM,但你仍然会有一个等价的。 – Joe 2010-06-11 15:34:15

+0

我给出了答案+1,但好像有一些方法可以用于OperationContract到一个连接,还有一些如何处理并发。 – Paparazzi 2012-05-25 19:20:47

相关问题