У меня есть следующий код для запроса EntityContext (через репозиторий) и сопоставления его с DTO:
public class QueryQuestionsConsumer : IConsumerOf<QueryQuestionsRequest>
{
public void Consume(QueryQuestionsRequest request)
{
var repo = IoC.Resolve<IUnitOfWork>().CreateRepository<Question>();
var filter = FilterTranslator.CreateFilterExpression<Question>(request.Filters);
var questions = repo
.GetAll()
.Where(filter)
Result = questions.Select(question => QuestionTranslator.ToDTO(question)).ToArray()
}
}
Это, очевидно, не получится, потому что ToDTO () не распознается функцией в провайдере EntityFramework. Я мог бы создать объект DTO, используя инициализатор объекта, но я бы хотел делегировать его другому классу (QuestionTranslator).
Что вы делаете в этом случае?
ОБНОВЛЕНИЕ:
Кроме того, я не хочу увлажнять полный Объект Вопроса, чтобы сделать это. Я хотел бы рассчитывать на способность Провайдера создавать объекты DTO.