Я пытаюсь преобразовать выражение типа Expression<Func<Entity, bool>>
в Func<Entity, bool>
.
Основой здесь является то, что я пытаюсь смоделировать репозиторий, чтобы он возвращал один из набора макетовсущности для данного значения ключа.(Я мог бы жестко закодировать входные значения для смоделированного метода, но это кажется неправильным подходом для большого количества элементов).
Поэтому я пытаюсь смоделировать метод First в моем хранилище следующим образом:*
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));
Это не работает, потому что collection.First использует Func, а не Expression>.Итак, я дошел до того, что мне нужно преобразовать Expression в содержащий его Func.
Возможно, здесь проще или лучше сделать это?