Динамический выбор соединения сущности остальной структуры - PullRequest
1 голос
/ 12 ноября 2010

У меня есть очень простой файл структуры сущностей (.edmx) и служба отдыха .svc.

Все отлично работает для операций CRUD.

У меня есть много баз данных, которые используют одну и ту же схему.

Мой следующий шаг - позволить клиенту передать inn параметр, который может быть строкой соединения или каким-либо другим значением, идентифицирующим пользователя, чтобы служба обслуживала данные из правильной базы данных.

Теперь единственным параметром является URI для ServiceRoot

В модели данных я вижу, что я могу передать inn строку подключения, но как я могу сделать это с клиента, не создавая много служебных файлов.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2010

Если вы используете службы данных WCF, вы сможете передавать информацию, идентифицирующую источник данных, для использования в HTTP-запросе. Либо в качестве пользовательского параметра в URL-адресе, либо в качестве настраиваемого заголовка HTTP (я бы, вероятно, использовал настраиваемый заголовок, так как с ним гораздо проще работать с клиента) В зависимости от способа размещения службы, вы должны иметь возможность доступа к заголовкам запроса на сервере. Для этого вы можете использовать способ ASP.NET (статические переменные) или подключиться к конвейеру обработки служб данных WCF, который также позволит вам получить доступ к этим заголовкам.

0 голосов
/ 12 ноября 2010

Я предполагаю, что вы используете WCF Data Services для предоставления файла edmx. Я не являюсь экспертом в этом наборе инструментов, но подозреваю, что единственный прямой путь - это создать сервис для каждой базы данных.

Это отличный вопрос, и я надеюсь, что этот сценарий будет рассмотрен в будущем стеке WCF HTTP.

Между тем, есть некоторые позитивные новости. В прошлом я экспериментировал с созданием большого количества сервисных хостов (около 1000), и мои эксперименты показали, что запуск довольно эффективен и не потребляет большого количества оперативной памяти. Ключ заключается в создании хостов службы в коде, а не через файлы конфигурации. Очевидно, вы не хотите вручную писать файл конфигурации XML с тысячами служебных записей в нем!

Возможно, это не идеальное решение, но я верю, что оно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...