1

Effort in memory db を使用して、エンティティ フレームワークの単体テストを作成しています。

テストの 1 つのセットでは、EF 部分がオブジェクトを作成し、その中の子リストにいくつかの既存のオブジェクトを追加します (マスター/詳細を考えてください)。次に、SavesChanges

単体テストでは、EF からレコードを取得し、実際にそこに到達し、子が配置されていることを確認します。

ただし、キャッシュからデータを読み取るだけでなく、実際に永続化されていることを確認したいと思います。そこで、DbSet のローカル キャッシュを Clear() します。

これを行うと、メイン レコードは正常に取得されますが、子レコードは取得されません。

これは、SQL Server と Effort に対してコードを実行した場合に当てはまります (つまり、Effort ではありません)。

コンテキストを破棄して新しいコンテキストを作成すると、同じメソッドが子を含むデータを正しく取得します。

そのため、ローカル キャッシュをクリアすると、データの取得が妨げられます。メインレコードと、それと子レコードの両方のキャッシュだけをクリアしようとしましたが、違いはありません。

任意の提案をいただければ幸いです。

4

0 に答える 0