Решить это с помощью EDMX + DbContext
, вероятно, будет сложно, потому что единственный способ - создать отдельный SSDL для каждой схемы.SSDL является частью вашего файла EDMX и является частью, где определены все таблицы, включая имя их схемы.Вы можете изменить SSDL во время выполнения (это просто XML по умолчанию, сохраняемый как ресурс вашей сборки), но вам придется вручную создать MetadataWorkspace
для каждой схемы, использовать его для создания EntityConnection
и передачи соединения в конструктор контекста.
EF ModelAdapter основан на ObjectContext
, поэтому вам придется использовать API ObjectContext (.NET 4.0) вместо API DbContext, если вы хотите его использовать.
Если вы переходите к отображению кода (нетEDMX, но свободный API, используемый для описания сопоставления), будет возможно достичь этого, потому что вы сможете параметризовать свой единственный набор сопоставления и использовать несколько DbModel
экземпляров (по одному на схему).