0

ここで、作業単位 (UoW)リポジトリパターンに関する別の質問があります。したがって、 TempHireソリューションが示すUoW を備えたリポジトリが気に入っています。非常に素晴らしく、それを理解しています。ただし、エンティティが親である.expandか親から離れているかを要求するクエリを渡す場合.select、EFContextProvider はそのアクションのリポジトリを呼び出すか、またはContext. これを少し調べたところ、EFContextProviderコンテキストの独自のインスタンスがあります..リポジトリパターンを使用していくつかのものを抽象化したため、これは心配ですが、これらのネストされたアクションを実行するときにそれらが適用されるとは思いません。誰でも私のためにこれを確認できますか? これが正しければ、DbContextこれらのネストされた呼び出しのために、を模倣する私のリポジトリに行くように設定する方法はありますか?

ありがとうガイズ&ギャルズ。キープ・イット・ブリージー

4

2 に答える 2

1

TempHire に実装されているリポジトリは、すべてのクエリに対してベース IQueryable を返します。.expand または .select は、クエリが実行される前にベース IQueryable に単純に追加されます。EFContextProvider がリポジトリを呼び出すことはありません。WebAPI コントローラーは、リポジトリを呼び出してベース IQueryable を取得します。これは、リポジトリが EFContextProvider 内の DbContext から取得します。リポジトリはさらに IQueryable に追加でき、最終的な IQueryable がそれを実行する Breeze.NET に返される前に WebApi コントローラーも追加できます。つまり、ベース IQueryable を返すリポジトリにあるすべてのロジックは、クエリをそのまま実行するか、.expand または .select を実行するかに関係なく適用されます。

于 2013-08-12T23:18:38.453 に答える