Изменить среду выполнения SSDL для ADO.NET и Entity Framework - PullRequest
1 голос
/ 28 марта 2012

Я хотел бы разобраться, как на лету изменить 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 ...

Есть идеи? Спасибовы!

...