【发布时间】:2011-02-18 01:02:13
【问题描述】:
我有以下代码来查询 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)。
在这种情况下你会怎么做?
更新: 此外,我不想为完整的问题对象添加水分来做到这一点。我想依靠 Provider 创建 DTO 对象的能力。
【问题讨论】:
标签: .net linq entity-framework iqueryable dto