.NET Core 2.0アプリケーションを使用している状況を想定してください。 Webアセンブリ、ビジネスアセンブリ、およびDataAccessアセンブリもあります。.NETコアのネストされたプロジェクト参照の防止
WebアセンブリがDataAccessアセンブリ(Entity Frameworkの内部にある)を直接参照しないようにしたいと思います。これは、Webアセンブリがショートカットを取り、DbContextと直接対話するのを防ぐためです。
私は、ビジネスとビジネスを参照しているWebでDataAccessを参照しています。
私のWebプロジェクトのコントローラでは、DataAccessプロジェクトでpublicとマークされているため、DbContextに直接アクセスできますが、明らかにWebプロジェクトに何らかの形で与えられていますネストされた参照。
私はこれと似た話題があるとします:https://github.com/aspnet/Mvc/issues/6635しかし、ここではStack Overflowのテーマをあまり見つけられませんでした。
これらのネストされた依存関係にトップレベルプロジェクトがアクセスするのを防ぐためのエレガントな方法はありますか?
Rob、これは質問に関するものではありません。私は抽象化のすべてをやっています。しかし、Entity Framework Code Firstを使用するためには、公開DbContextが必要です。私はDataAccessアセンブリのすべてのDataAccess関連項目を移動しました...しかし、.NET Coreは自分自身のプロジェクト依存関係から再帰的にすべての依存関係に直接アクセスできるため、Webプロジェクトから直接DbContextにアクセスできます。 – wvdhouten