タイプExpression<Func<Entity, bool>>
の式をFunc<Entity, bool>
に変換しようとしています。式をラムダ式に変換するにはどうすればよいですか?
ここでの背景は、リポジトリを模擬して、指定されたキー値のモックエンティティのコレクションの1つを返すようにしようとしていることです。 (私は虚偽の方法に入力値をハードコードすることができますが、これは多数の項目が誤っているように見えます)。
だから私はこのように私のリポジトリ上の第一の方法を模擬しようとしています:collection.First>はむしろ式よりのFuncがかかるため
var collection = new List<Entity>
{
mockedEntity1,
mockedEntity2,
mockedEntity3,
...
};
mockRepository
.Setup(rep => rep.First(It.IsAny<Expression<Func<Entity, bool>>>()))
.Returns<Expression<Func<Entity, bool>>>(e => collection.First(e));
これは動作しません。だから私は、それが含まれている関数に式を変換する必要があるポイントにしている。
おそらく、これを行うにはもっと簡単でよいでしょうか?
ありがとうございました。それは働いた:) – Reee