質問のために、私は次のように構成されたプロジェクトを持っています。ここで、各レイヤーは私のビジュアル スタジオ ソリューションのプロジェクトにマップされます。
- プレゼンテーション層
- ビジネスロジック層
- データ層 (Entity Framework での作業)
データ層で定義されたリポジトリ クラスがあります。BL レイヤーでそれらをインスタンス化すると、エンティティ フレームワーク アセンブリへの参照が見つからないというエラーが表示されます。DL で使用されているのと同じエンティティ フレームワーク dll への参照を追加すると、動作します。
私の質問は、BL が DL を参照するだけでは不十分なのはなぜですか? BL で EF への「追加の」参照を追加する必要があるのはなぜですか? ソリューションで複数の EF バージョンを制御したくないことは明らかです。
私のDLは「アトミック」ユニットであり、そのすべてのオブジェクトは自己完結型であり、適切に機能するために他に何も必要ないと思います。では、DL で定義されたクラスをインスタンス化するときに、EF 参照を追加する必要があるのはなぜですか?