質問: EF Core dbコンテキストを含むクラスライブラリプロジェクトがあります。これはフレームワークの一部です。 フレームワークプロジェクトに変更を加えることなく、このコンテキストを拡張したいと思います。 2番目のコンテキストは同じデータベースを使用します。 別のクラスライブラリに別のdbコンテキストを作成しました(これに似たもの )。これは問題なく動作します。クエリを作成し、他のコンテキストとは別に移行を作成できます。 しかし、たとえば、最初のコンテキストにUserエンティティがあり、2番目のコンテキストにUserBooksがある場合、2つのコンテキスト間で`join`を行おうとしても機能せず、例外が発生します *System.ArgumentNullException:値をnullにすることはできません。パラメーター名:entityType* これは既知の問題です。 また、最新のNuGetパッケージ3.0.0-preview3.19153.1を試しましたが、唯一の違いはエラーメッセージの方が良いことです *単一のクエリ実行内で複数のDbContextインスタンスを使用することはできません。クエリが単一のコンテキストインスタンスを使用していることを確認する* する方法はありますか a。 2つのコンテキストを結合します または b。 「メイン」コンテキストに(または最小限の)変更を加えずに、別のプロジェクトのコンテキストを拡張する
回答: 2番目のコンテキストに最初のコンテキストを継承させることができます。 ``` public class MyFirstContext : DbContext { public DbSet Users { get; set; } } public class MySecondContext : MyFirstContext { public DbSet UserBooks { get; set; } } ``` もちろん、2番目のコンテキストは別のアセンブリにある可能性があります。これで、アプリケーションに`MySecondContext`のみが必要に`MySecondContext`ました。 `Users`と`UserBooks`に参加でき`Users` 。