2016-03-18 9 views
0

私はSSISパッケージで再利用したいビジネスロジックを含む.net dllを持っています。 dllは、そのデータアクセス層にEntity Frameworkを使用します。私は実行時にDLLをロードする方法を見つけましたが(How to load an Assembly...)、有効な接続文字列を持たないエラーが出ています。通常、EFアプリケーションでは、接続文字列はapp.configファイルにあり、EFによって自動的に読み込まれます。しかし、私はSSISパッケージに設定ファイルを追加する方法を見つけることができません。どのように私は設定ファイルを追加するか、または接続文字列を設定することができるかもしれないというアイデアを持っているので、EFベースのdllで使用できるようになりますか?SSISとEntity Frameworkを使用したDLL

私はSSISパッケージから呼び出されるDLLに接続文字列を読み込むには、2つの方法があります表示された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

を使用しています:

  1. 基本的にSSISパッケージ(例えばDTExec.exe.config、DtsDebugHost.exe.config、またはdtshostを実行しているプログラムの設定ファイルに接続文字列を追加すると言う赤穂のリンク内の情報を使用してください。 exe.config)。それは少し怖いですが、うまくいきます。

    ここEntity Framework, dll, excelを掲載よう
  2. 、あなたのDLLであなたEFコンテキスト・クラスを変更するに接続文字列を渡す - コンストラクタの一部として:

    公衆あるMyContext(文字列dbNameOrConnectionString):塩基(dbNameOrConnectionString){}

    文字列内の

..thenパスコンテキストオブジェクトもちろん​​

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

を作成する - にこれを行うには、通常の.NETアプリケーションとSSISパッケージの外部から提供される接続文字列の両方で動作するようにdllのデータレイヤーを変更できる必要があります。

関連する問題