2016-03-18 2 views
0

У меня есть .net dll, которая содержит бизнес-логику, которую я хочу повторно использовать в пакете SSIS. DLL использует Entity Framework для своего уровня доступа к данным. Я нашел способ загрузить DLL во время выполнения (How to load an Assembly...), но я продолжаю получать ошибки, которые сводятся к тому, что не имеют допустимой строки подключения. Обычно в наших приложениях EF строка подключения находится в файле app.config, и EF загружает ее автоматически. Однако я не могу найти способ добавить файл конфигурации в пакет SSIS. Кто-нибудь имеет представление о том, как я могу добавить файл конфигурации или установить строку подключения, чтобы DLL на основе EF могла его использовать?SSIS и dll с использованием Entity Framework

Я использую VS 2012 и SQL Server 2012, EF 6.0 и .Net Framework 4,52

+1

Вы проверили http://www.sqlis.com/post/Where-is-my-appconfig-for-SSIS.aspx? – Ako

+0

Спасибо, что сработал. Кажется немного странным, что мне нужно будет поместить все мои специфические параметры пакета в общий файл dtshost.exe.config, но он работает, когда я помещаю в него строку соединения с сущностью. – Clinemi

ответ

0

Оказывается Есть два способа загрузки строки подключения в DLL, которая вызывается из пакета SSIS:

  1. Используйте информацию в ссылке АКО, которая в основном говорит, чтобы добавить строку подключения к конфигурационный файл программы, которая выполняется пакет SSIS (например DTExec.exe.config, DtsDebugHost.exe.config или dtshost. exe.config). Это немного страшно, но это работает.

  2. Как писал здесь Entity Framework, dll, excel, измените EF контекстного класс в библиотеках DLL, чтобы передать строку соединения в - как часть конструктора:

    общественного MyContext (строка dbNameOrConnectionString): основание (dbNameOrConnectionString) {}

..то проход в строке при создании контекста объекта

string connectionString = GetConnectionStringFromExternalSource(); 
MyContext myDb = new MyContext(connectionString); 

конечно - к сделайте это, вы должны иметь возможность изменить слой данных dll для работы как с обычным .NET-приложением, так и с внешней строкой подключения для пакета SSIS.

Смежные вопросы