Обработка различных баз данных с помощью LINQ на основе пользователя, который в данный момент вошел в систему? - PullRequest
6 голосов
/ 05 июня 2009

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

Кто-нибудь имеет представление о лучшем способе обработки нескольких баз данных, основанных на пользователях? Допустим, у нас есть 3 именитых клиента, дизайнерское решение было принято, каждый крупный клиент имеет свою собственную базу данных.

Если пользователь из clientA входит в нашу систему, он должен видеть аналитику для своей компании, и модель должна выходить из контекста данных clientA. Аналогичным образом, если кто-то входит в систему и ассоциируется с clientB в базе данных, ему необходимо извлечь свои данные из этого контекста данных.

Если я могу, я хотел бы иметь один класс Data Access Layer, написанный на LINQ, и иметь некоторый способ передачи связанного DataContext с этим пользователем при входе в систему. Кто-нибудь может придумать подходящий или чистый способ сделать это?

1 Ответ

9 голосов
/ 05 июня 2009

Если схемы одинаковы для всех баз данных, то это очень просто. Текст данных имеет перегрузку, которая принимает строку подключения. Просто сохраните различные строки подключения в каком-то централизованном месте (база данных, XML, ресурс и т. Д.), А затем просто создайте один текстовый текст с этой строкой подключения, которую вы затем сможете использовать независимо от того, кто подключен.

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