Клиентская библиотека Elastic Database предоставляет поддержку в EF, см. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-use-entity-framework-applications-visual-studio.
По сути, она позволяет вам устанавливать правила, определяющие, какую базу данных использовать для определенного запроса, поэтому выможет иметь базу данных для каждого клиента.
Я лично не пользовался библиотекой, но раньше сам управлял ею.Если вы делаете это самостоятельно, то в основном это так;Вы создаете основную базу данных, в которой находится список всех ваших клиентов, включая информацию о том, в каком регионе они находятся. Затем вы создаете фабрику, которая будет создавать строку подключения к базе данных для данного клиента, а затем настраивать свой код таким образом, чтобы принужен DbContext, он запрашивает фабрику, которая затем создаст строку соединения и создаст DbContext с правильной строкой соединения.
При первом коде EF база данных будет создана автоматически для вас.Сложной частью является обработка миграций с помощью Code First.Я реализовал цикл при запуске, который явно вызывал бы «применить миграцию» в каждой базе данных.Проблема в том, что EF Code First не ожидает, что у вас будет несколько баз данных, поэтому вам нужно реализовать собственную фабрику соединений, которую может использовать код миграции.Я не могу вспомнить точные подробности на макушке, но если вы хотите прокрутить это и сначала использовать код EF, дайте мне знать, и я постараюсь выкопать код.