Effort in memory db を使用して、エンティティ フレームワークの単体テストを作成しています。
テストの 1 つのセットでは、EF 部分がオブジェクトを作成し、その中の子リストにいくつかの既存のオブジェクトを追加します (マスター/詳細を考えてください)。次に、SavesChanges
単体テストでは、EF からレコードを取得し、実際にそこに到達し、子が配置されていることを確認します。
ただし、キャッシュからデータを読み取るだけでなく、実際に永続化されていることを確認したいと思います。そこで、DbSet のローカル キャッシュを Clear() します。
これを行うと、メイン レコードは正常に取得されますが、子レコードは取得されません。
これは、SQL Server と Effort に対してコードを実行した場合に当てはまります (つまり、Effort ではありません)。
コンテキストを破棄して新しいコンテキストを作成すると、同じメソッドが子を含むデータを正しく取得します。
そのため、ローカル キャッシュをクリアすると、データの取得が妨げられます。メインレコードと、それと子レコードの両方のキャッシュだけをクリアしようとしましたが、違いはありません。
任意の提案をいただければ幸いです。