DBContextモデルに含まれるものは何ですか?
-
21-12-2019 - |
質問
説明:
特定のドメインセグメントを異なるDbContext
sに分離しようとしました。
それぞれいくつかのDbSet
sを持ちますが、共有されているDbSet
などがあります。
この分離の理由は、モデルが生成される速度とシンプル性(オブジェクト内のセットが少なく、IntelliSenseに役立ちます)です。
しかし、私は生成されたモデルに正確に属するものについてはわかりません。
Q1:は、モデルに含まれるDBSetにDBSETが存在するエンティティと過渡的に接続されているすべてのエンティティです。
Q2:そうであれば、それはパフォーマンスごとにドメインを別のコンテキストに分離することを目的としていないことを意味します。 UserProfile
に記載されていますか?
モデルの生成方法については、どこでもっと詳しく説明できますか?私はEntityFrameworkとCodefirstの本を読み、その特定の情報を見つけることができませんでした...
解決
あなたの最初の質問:はい、両側のエンティティを含むすべての関係がモデル化されているので、含まれているエンティティにナビゲーションプロパティで接続されているすべてのエンティティもモデルに含まれます。それのためのDbSet
があります。
エンティティフレームワークは、すべてのエンティティのDbSets
を作成することを強制しません。あなたが彼らの両親を通してのみアクセス可能になるように子エンティティを「制限」したいのであれば、これは便利です。
2番目の質問:他のコンテキストに属するエンティティのナビゲーションプロパティを介して、1つのコンテキストに属するすべてのエンティティが到達可能ではないが、パフォーマンスを分離する可能性があります。 は、コンテキスト内のより多くのDbSets
を含む明示的に関連する追加のコストであり得る。
エンティティフレームワークのソースコード、それはオープンソースで入手可能なで読むことができましたモデルの構築方法の詳細については、