Я хотел бы разобраться, как на лету изменить SSDL в строке подключения.
Я следовал этому уроку здесь: http://www.codeproject.com/Articles/82017/Preparing-an-Entity-Framework-model-for-multi-prov, но я все еще не могу понять, как настроить строку «res: //» и куда поместить файл .ssdl.
У меня сложная иерархическая структура, которая должна соответствовать структуре адаптера:
<project root>
/ Toolkit
/ Database
/ External
/ Adapter
/ Abstract.cs
/ File
/ File.ssdl
/ Adapter_File.cs
/ MySql
/ MySql.ssdl
/ Adapter_MySql.cs
[... and so on]
В мой Adapter_ (database_type) .cs У меня есть следующий код (это для MySql:
string conn =
@"metadata=res://*/Toolkit.Database.External.ADO.ADODatabase.csdl" +
@"|res://*/Toolkit.Database.External.Adapter.MySql.MySql.ssdl" +
@"|res://*/Toolkit.Database.External.ADO.ADODatabase.msl;" +
@"provider=MySql.Data.MySqlClient;" +
"provider connection string=\"server=" + dbBean.Server + ";" +
"Port=" + dbBean.Port + ";" +
"User Id=" + dbBean.Username + ";"+
"Password=" + dbBean.Password + ";" +
"database=" + dbBean.Schema + "\"";
Кажется, все работает нормально, но во время выполнения мое приложение возвращает ошибку при попытке подключения к каждой базе данных, кажется, что оно не достигает файла .ssdl ...
Есть идеи? Спасибовы!