多个数据库的WCF配置

时间:2011-01-31 15:36:34

标签: sql winforms wcf database-connection multiple-databases

我正在将我们的win表单应用程序转换为使用WCF服务而不是客户端调用SQL数据库。

我不确定最新的做法,但我们在大约600个数据库上有相同的数据库模式。

我希望在这里找到一个解决方案,我在winform应用程序启动时声明WCF服务使用此数据库。因为我试图避免在每个方法中传递一个参数来使用什么连接字符串。

我对WCF有一些了解,但我对“公共声明”和连接上下文知之甚少,并且没有为我的场景找到任何好的例子。

这甚至可能吗?

如果有人能指导我正确的方向或给我一些示例代码,我将非常感谢! :)

提前致谢

2 个答案:

答案 0 :(得分:1)

WCF支持会话。因此,您可以在第一次调用中传递要使用的数据库,并且所有其他调用都将使用会话中的值。

请参阅:http://msdn.microsoft.com/en-us/library/ms733040.aspx

答案 1 :(得分:1)

WCF是一个奇怪的API,因为你将花费第一个月完全没有得到它,接下来的几个月就会想知道你是如何得不到它的。我可以回答你的一些问题。

  1. 我所知道的最好的资源是Juval Lowry的书,虽然我听到Bustamante的书也非常好。

  2. 您可以在运行表单之前在Main()中启动WCF服务

  3. 对于您所谈论的设计,您可能需要为您的服务设置非默认构造函数。这有点痛苦,我相信Lowry的书处理它。如果不看IInstanceProvider和IEndPointBehavior

  4. 话虽如此,我并没有真正看到WCF如何适应这种设计方案。它真的用于客户端和服务器之间的通信。如果您计划将其用于SOA类型设计,则还有其他方法更清洁,重量更轻。依赖注入等 你能举出一个更直截了当的例子来说明你想做什么吗?我甚至建议一个简单包装你的数据库的类,你传递给需要数据库信息而不是WCF的所有对象。