Потратив один день на эту проблему, я наконец понял, что проблема возникла из файла model.edmx.
В этом файле у вас есть одна строка на EntitySet.
В каждом элементе EntitySet есть атрибут, называемый схемой. В случае SQL Server этому атрибуту присваивается соответствующая схема таблицы:
EntitySet Name = "annee_civile"
EntityType = "openemisModel.Store.annee_civile"
store: Type = "Tables" Schema = "mydatabase" />
Если вы указываете имя Схемы, когда создаете свой собственный EntityConnection, создается впечатление, что существует конфликт и, наконец, Схема, определенная в файле edmx, будет использоваться, даже если вы указали другую в параметрах соединения.
Решение состоит в том, чтобы просто удалить имя схемы из файла edmx.
Это работает для MysQL, вероятно, не при подключении к серверу SQL.
EntitySet Name = "annee_civile"
EntityType = "openemisModel.Store.annee_civile"
store: Type = "Tables" Schema = "" />
EntityConnectionStringBuilder:
string provideString = "Идентификатор пользователя = xxxx; Пароль = xxx; Хост = xxxx; База данных = anydatabasename";
EntityConnectionStringBuilder entityConnBuilder = new EntityConnectionStringBuilder ();
entityConnBuilder.Provider = "Devart.Data.MySql";
entityConnBuilder.Metadata = @ "res: ///OpenEmisModel.csdl | res: ///OpenEmisModel.ssdl | res: //*/OpenEmisModel.msl";
entityConnBuilder.ProviderConnectionString = provideString;
EntityConnection и контекст объекта, использующий его:
EntityConnection entityConConionionEmis = новый EntityConnection (entityConnBuilder.ConnectionString);
objectcontextEntities testingContext = новый objectcontextEntities (entityConnexionEmis);
Программа теперь может подключаться к любому имени базы данных.
Надеюсь, это поможет.