2017-11-22 18 views
0

私たちはいくつかのアプリケーションに機能トグルを追加しようとしています。各アプリケーションのデータベースにトグルを格納します。ビルドコード内部クラスからナゲットパッケージへの最初の移行

私たちの計画は、FeatureToggle NuGetパッケージを構築することです。理想的には、このパッケージはFeatureToggleクラスのみを公開します。他のクラス(DbContext、EFモデルなど)はすべてパッケージの内部にあります。

もちろん、NuGetパッケージの内部クラスを参照するため、移行はコンパイルされません。

内部クラスに基づいてCodeFirstマイグレーションを構築して実行することは可能ですか?

既存のデータベースにテーブルを追加するNuGetパッケージを設計するための共通/標準のテクニックがありますか?

答えて

1

いいえ、internalクラスは彼らだけが定義されている同じアセンブリから参照することができます。

私はこれを達成するための共通/標準的な方法については知りませんが、私はnugetパッケージを使用していた知っています初期化時にSQLスクリプトを実行して、必要なテーブルを追加します。あなたのアプリケーションがこれらの内部クラスやテーブルに直接アクセスする必要がない場合は、そのメソッドを調べることをお勧めします。参考のために、これを行います私が使用したライブラリがhangfireある

- githubのソースを参照してください。移行を作成するためにHangfire/SqlServerObjectsInstaller.cs、エンドユーザを必要とせずに、すべてを追加するために、適切なinstall.sqlスクリプトを実行するなど

関連する問題