エンティティフレームワークを使用して、エンティティをデータベースに格納します。リポジトリパターンを使用して、非常に複雑なLinqクエリをラップします。 単純なメモリコレクションに対してこれらのクエリを単体テストする必要があります。これは、SQL型のrowversionを使用して、最後に追加されたレコードを検索するクエリを実行するまで、問題なく機能します。 EntityFrameworkは、このLinqをSQLに変換することができます。LinqクエリでSqlバージョンとC#バイト配列を処理する方法
行バージョンは、オブジェクトがデータベースから再水和されたときにulong(?)に収まるには大きすぎるため、C#によってバイト配列に変換されます。
これらのバイト配列をメモリ内テストデータに追加します。 しかし、私たちのメモリセットに対してクエリを実行した場合、Linqはバイトの配列として爆発的に爆発的になりますので、必要な並べ替えを実行できません。
バイト配列で動作する比較関数を作成しました。この比較関数をクエリで使用すると、メモリで正常に動作します。
しかし、LinqToEntitiesはコンペアラでクエリを処理できません。
我々はキャッチ22で立ち往生しているように見える...
はメモリとLinqToEntitiesに機能するソリューションを誰がいますか?
あなたがのIQueryableとメモリコレクションでラップし、そのロジックをテストするためにそれを使用している場合DBのような別のIQueryableソースに対して実行しようとしています。あなたのテストは良くないので何も証明しません。同じ表現は、論理的には同等ではないかもしれません(特に、それがヌルを含む場合)。 – Mant101
私はそれが同じではないことに同意しますが、私たちの左の結合がnullを処理できるように注意します。それでも、我々はまだ展開されたDBに対してテストセットを実行します。しかし、4000台のテストすべてでそれを実行すると、実際にビルドサーバーが壊れてしまいます。 –