Сценарий A: Предположим, у вас есть несколько баз данных на том же экземпляре SQL Server/SQL Azure, который использует ту же структуру, где имена баз данных основаны на соглашениях, например db001, db002, ... и одна служба RESTier должна быть способный адресовать правильную базу данных для каждого вызова REST в зависимости от некоторого признака, который должен быть предоставлен в заголовке запроса или в пути URI или строке запроса.Как получить один сервис RESTier 0.6.0, который выбирает базу данных в зависимости от запроса?
Сценарий B: Один сервис RESTier должен иметь возможность адресовать несколько строк соединения, определенных в файле web.config, в зависимости от некоторых характеристик, которые должны быть предоставлены в запросе.
В обоих сценариях базовая проблема одинакова, одна служба RESTier позволяет адресовать запросы более чем одной базе данных, где клиент должен предоставлять по каждому запросу подсказку к используемой базе данных, типичный многопользовательский сценарий. Я использую RESTier версии 0.6 и наборы сущностей автоматически подвергаются от Entity Framework модели:
public class Entities : EntityFrameworkApi<SalesEntities> {
Вопрос является, как бы вы посоветовали для реализации такого рода сценариев многопользовательских?
Должен признать, что я не нашел, как использовать префикс маршрута («TrippinA», «TrippinB»), чтобы выбрать экземпляр соответствующей базы данных (скажем, «DBTrippinA», «DBTrippinB»), поэтому что следующие два запроса предназначены для разных баз данных по одному и тому же контроллеру RESTier: http: // myServer/api/TrippinA/Products http: // myServer/api/TrippinB/Products –
Для каждого DBInstance вы должны использовать код сначала и создайте два класса с расширением DBContext, каждый DbContext связан с одним DbInstance. Во время маршрутной карты каждый маршрут связан с одним DbContext. Таким образом, мы можем сделать маршрут, связанный с DbContext. Но обратите внимание, что это не настроено автоматически, но настроено во время запуска приложения. – Vincent
Это означало бы, что я должен заранее определить максимальное количество арендаторов, которые я хочу поддержать (10 арендаторов означают, что 10 DbContexts означают 10 жестко запрограммированных маршрутов), что, как многопользовательский подход, не имеет для меня большого смысла. –