Конфигурация WCF для нескольких баз данных

Я нахожусь в процессе преобразования нашего приложения Win Form для использования службы WCF вместо клиентских обращений к базе данных SQL.

Я не уверен, что лучше, но у нас есть идентичные схемы баз данных примерно на 600 базах данных.

Я надеялся найти решение, в котором я при запуске приложения winform объявляю службу WCF для использования этой базы данных. на данный момент я пытаюсь избежать в каждом методе передать параметр для какой строки подключения использовать.

У меня есть некоторое понимание WCF, но я очень мало знаю о "публичных декларациях" и контексте соединения и не нашел хороших примеров для своего сценария.

это вообще возможно?

если кто-нибудь может направить меня в правильном направлении или дать мне пример кода, это будет очень цениться!:)

заранее спасибо

2 ответа

WCF поддерживает сессии. Таким образом, вы можете передать, какую базу данных вы хотите использовать при первом вызове, а все остальные вызовы будут использовать значение в сеансе.

Смотрите: http://msdn.microsoft.com/en-us/library/ms733040.aspx

WCF - это странный API, в котором вы потратите первый месяц, не получая его вообще, а следующие несколько месяцев задаетесь вопросом, как вы не могли его получить. Я могу ответить на некоторые ваши вопросы.

  1. Лучший ресурс, который я знаю, - это книга Джувала Лоури, хотя я слышал, что книга Бустаманте тоже очень хорошая.

  2. Вы можете раскрутить службу WCF в Main() перед запуском формы

  3. Для дизайна, о котором вы говорите, вам, вероятно, понадобится конструктор не по умолчанию для вашего сервиса. Это немного больно, и я думаю, что книга Лоури справится с этим. Если нет, посмотрите на IInstanceProvider и IEndPointBehavior

При этом я не очень понимаю, как WCF вписывается в эту схему проектирования. Это действительно для связи между клиентом и сервером. Если вы планируете использовать его для разработки типа SOA, есть другие методы, которые намного чище и легче. Введение зависимости и т. Д. Можете ли вы привести более простой пример того, что вы хотите сделать, возможно? Я бы даже предложил класс, который просто оборачивает вашу базу данных, которую вы передаете во все объекты, которым нужна информация о БД, а не WCF.

Другие вопросы по тегам